home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / rbbs_pc / rbbsdoc.zip / RBBSDOC2.DOC < prev   
Text File  |  1988-10-01  |  343KB  |  6,553 lines

  1. RBBS-PC Version CPC17-1A                                    October 2, 1988
  2. Copyright 1988 by D. Thomas Mack                            Page 109 of 232
  3.  
  4.  
  5. 12.2.1 Command to Reset the Modem
  6. ---------------------------------
  7. The  modem  reset command is the first option in CONFIG parameter  225  and
  8. it's default value is the Hayes command string:
  9.  
  10. Command    Meaning
  11. AT         Signifies the following characters are Hayes commands.
  12. Z          Causes a software reset and applies all default values.
  13.  
  14.     This  command  is ALWAYS issued and is the first command issued to  the
  15.     modem every time RBBS-PC gets ready for calls.
  16.  
  17. 12.2.2 Command to Initialize the Modem
  18. --------------------------------------
  19. The modem initialization command is ALWAYS issued and is the second command
  20. issued to the modem every time RBBS-PC gets ready for calls.
  21.  
  22. The  modem intialization command is the second option in  CONFIG  parameter
  23. 225 and it's default value is one of following Hayes command strings.
  24.  
  25. If  CONFIG has used to set RBBS-PC to answer on a ring greater  than  zero,
  26. the command string is:
  27.  
  28. Command    Meaning
  29. AT         Signifies the following characters are Hayes commands.
  30. M0         Turn the monitor speaker on the modem off permanently.
  31. Q1         Do not return result codes to the PC.
  32. S2=255     Disable escape code detection.
  33. S10=30     Do not drop disconnect user unless carrier drops for more
  34.            than seconds (you may want to set this to 15)
  35. E0         Do not echo characters back to the PC when receiving Hayes
  36.            commands.
  37. Q0         Send result codes to the PC.
  38. X1         Tells the modem to send "extended" result codes to the PC.
  39. S0=x       "x" is set as follows:
  40.                  S0=254  to answer on a specific number of rings > 0
  41.                  S0=255  to enable "ring-back"
  42.  
  43. If CONFIG sets RBBS-PC to answer on zero rings, the command string is:
  44.  
  45. Command    Meaning
  46. AT         Signifies the following characters are Hayes commands.
  47. M0         Turn the monitor speaker on the modem off permanently.
  48. Q1         Send result codes to the PC.
  49. S2=255     Disable escape code detection.
  50. S10=30     Do not drop disconnect user unless carrier drops for more
  51.            than seconds.  Some of the Hayes ROM's have a bug in them
  52.            that causes the modem to only answer at 1200 baud if anything
  53.            other than the factory default is used for S10.  If you
  54.            have such a problem, simply set S10 equal to 7.
  55. E0         Do not echo characters back to the PC when receiving Hayes
  56.            commands.
  57. Q0         Send result codes to the PC.
  58. RBBS-PC Version CPC17-1A                                    October 2, 1988
  59. Copyright 1988 by D. Thomas Mack                            Page 110 of 232
  60.  
  61. X1         Tells the modem to send "extended" result codes to the PC.
  62. S0=1       Answer the phone on the first ring.
  63. Q0         Send result codes to the PC.
  64. X1         Tells the modem to send "extended" result codes to the PC.
  65.  
  66. 12.2.3 Command to Count The Number of Rings
  67. -------------------------------------------
  68. The  modem command that counts the number of rings is the third  option  in
  69. CONFIG parameter 225 and it's default value is the following Hayes  command
  70. string:
  71.  
  72. Command    Meaning
  73. AT         Signifies the following characters are Hayes commands.
  74. S1?        Requests the modem to return the number of times that the phone
  75.            has rung.
  76.  
  77. This command string is only issued when CONFIG has been used to tell  RBBS-
  78. PC to answer on a specific number of rings other than 0.  Some modems  have
  79. trouble  with the S1? command because they do not recognize the ?  part  of
  80. the command.  Again, verify what your modem is capable of handling.
  81.  
  82. 12.2.4 Command to Answer the Phone
  83. ---------------------------------
  84. The  modem  command  to answer the phone is the  fourth  option  in  CONFIG
  85. parameter  225  and it's default value is one of  following  Hayes  command
  86. string:
  87.  
  88. Command    Meaning
  89. AT         Signifies the following characters are Hayes commands.
  90. Q0         Tells the modem to send result codes to the PC.
  91. X1         Tells the modem to send "extended" result codes to the PC.
  92. V1         "Extended" result codes are to be transmitted as words.
  93. A          Tells the modem to answer the phone immediately.
  94. This is only issued if the number of rings to answer on are greater than 0.
  95.  
  96. RBBS-PC  utilizes the extended verbal results code (CONNECT,  CONNECT  300,
  97. CONNECT 1200, and CONNECT 2400) to determine the callers baud rate.
  98.  
  99. Some  Hayes  300  modems don't function with RBBS-PC because  they  do  not
  100. recognize the "X1" command.   If you have a modem like this,  simply remove
  101. the X1 command from the command strings in the .DEF file.
  102.  
  103. 12.2.5 Command to Take the Phone Off the Hook
  104. ---------------------------------------------
  105. The  modem  command to take the phone off the hook is the fifth  option  in
  106. CONFIG parameter 225 and it's default value is the following Hayes  command
  107. string:
  108.  
  109. Command    Meaning
  110. AT         Signifies the following characters are Hayes commands.
  111. Q1         Do not return result codes to the PC.
  112. E1         Echo characters back to the PC when handling Hayes commands.
  113. H1         Take the modem off the hook (i.e. busy out the line).
  114. M0         Turn the monitor speaker on the modem off permanently.
  115. RBBS-PC Version CPC17-1A                                    October 2, 1988
  116. Copyright 1988 by D. Thomas Mack                            Page 111 of 232
  117.  
  118.  
  119. This command is ALWAYS issued whenever the SYSOP is doing local maintenance
  120. (i.e. hits ESC) or a user hangs up.
  121.  
  122. 12.2.6 Commands to Initialize Smartmodem 2400 Firmware
  123. ------------------------------------------------------
  124. The commands to initialize the modem firmware are not contained in the .DEF
  125. file,  but rather are dynamically set (or reset) each time that  CONFIG  is
  126. invoked.  There are essentially three commands:
  127.  
  128.         1.  A command to clear the modem's firmware.
  129.         2.  A command to initialize the modem's firmware.
  130.         3.  The command to write the initialized firmware to the modem's
  131.             non-volatile memory is "&W".
  132.  
  133. The  modem  command to clear the modem's firmware is the  sixth  option  in
  134. CONFIG parameter 225 and it's default value is the following Hayes  command
  135. string:
  136.  
  137. Command    Meaning
  138. AT         Signifies the following characters are Hayes commands.
  139. &F         Load the modem active configuration  area  with  the  factory
  140.               profile contained in the Hayes ROM.
  141.  
  142. The modem command to initialize the modem's firmware is the seventh  option
  143. in  CONFIG  parameter  225 and it's default value is  the  following  Hayes
  144. command string:
  145.  
  146. Command    Meaning
  147. AT         Signifies the following characters are Hayes commands.
  148. &C1        Data carrier detect tracks the state of the data carrier from
  149.               the remote modem.
  150. &D3        Modem is to assume the initialization state if it detects ON-
  151.               to-OFF transition of DTR.  The newer versions of the Hayes
  152.               2400 baud modem (ROM 249 or greater) and some clones do not
  153.               allow RBBS-PC to recycle properly when the &D switch is set
  154.               to 3.  If you are having a problem, set the it to &D2.
  155. B1         Set the modem to Bell 212A mode when the 1200 BPS data transfer
  156.               rate is selected.
  157. E0         Do not echo characters of the modem commands issued by RBBS-PC
  158.               back to the PC running RBBS-PC.
  159. V1         Select long-form result codes.
  160. M0         Disable the modem's speaker when carrier is detected.
  161. S0=0       Disable "auto-answer" mode.
  162. &T5        Disallow a request from the remote modem for a remote digital
  163.               loopback test.
  164.  
  165. The  modem  command to write the initialized firmware to the  modem's  non-
  166. volatile  memory  is  the sixth option in CONFIG  parameter  225  and  it's
  167. default value is the following Hayes command string:
  168.  
  169. Command    Meaning
  170. &W         Write the Hayes firmware settings to non-volatile memory
  171. RBBS-PC Version CPC17-1A                                    October 2, 1988
  172. Copyright 1988 by D. Thomas Mack                            Page 112 of 232
  173.  
  174. These  three  commands are ALWAYS issued in CONFIG when  parameter  231  is
  175. selected.   These commands can be temporarily altered by changing them  via
  176. parameter 225 of CONFIG prior to invoking parameter 231.
  177.  
  178. 12.2.7 Commands to Initialize Smartmodem 9600 Firmware
  179. ------------------------------------------------------
  180. The Hayes V-series Smartmodem 9600's active configuration should be:
  181.  
  182. B1       -- Factory setting
  183. E1       -- Factory setting
  184. L1       -- Low speaker volume (unless you like noise).
  185. M1       -- Factory setting
  186. N1       -- Factory setting
  187. Q0       -- Factory setting
  188.  T       -- touch tone (could be "P" for pulse dial).
  189. V1       -- Factory setting
  190. W1       -- Modem reports error-control call (i.e. LAP-B/HDX).
  191. X1       -- Send result basic result codes plus CONNECT 1200, 2400, etc.
  192. Y0       -- Factory setting
  193. &C1      -- Factory setting
  194. &D2      -- Disable auto-answer when carrier drops.
  195. &G0      -- Factory setting
  196. &J0      -- Factory setting
  197. &K3      -- Factory setting
  198. &L0      -- Factory setting
  199. &P0      -- Factory setting
  200. &Q5      -- Factory setting
  201. &R0      -- Factory setting
  202. &S1      -- Data Set Ready operates according to RS-232C standards.
  203. &T5      -- Deny requests for remote loop back tests from calling modem.
  204. &X0      -- Factory setting
  205. &Y0      -- Factory setting
  206. S00:254  -- Let phone ring 254 times before automatically answering it.
  207. S01:000  -- Factory setting
  208. S02:043  -- Factory setting
  209. S03:013  -- Factory setting
  210. S04:010  -- Factory setting
  211. S05:008  -- Factory setting
  212. S06:002  -- Factory setting
  213. S07:054  -- Assume no carrier is detected within 54 seconds of answering.
  214. S08:002  -- Factory setting
  215. S09:006  -- Factory setting
  216. S10:030  -- Let carrier drop for up to 30 seconds before disconnecting.
  217. S11:095  -- Factory setting
  218. S12:050  -- Factory setting
  219. S18:000  -- Factory setting
  220. S25:005  -- Factory setting
  221. S26:001  -- Factory setting
  222. S36:001  -- Factory setting
  223. S37:000  -- Factory setting
  224. S38:020  -- Factory setting
  225. RBBS-PC Version CPC17-1A                                    October 2, 1988
  226. Copyright 1988 by D. Thomas Mack                            Page 113 of 232
  227.  
  228. The Hayes V-series Smartmodem 9600's have non-volatile memory that contains
  229. three different possible configurations --
  230.  
  231.    1.  the active configuration,
  232.    2.  the profile 0 configuration, and
  233.    3.  the profile 1 configuration.
  234.  
  235. To  utilize  the Hayes V-series 9600 modems with RBBS-PC, it  is  necessary
  236. that the SYSOP
  237.  
  238.    1.  set the active configuration as shown on the previous pages, and
  239.    2.  write this active configuration to profile 0 with the &W0 command.
  240.  
  241. This  can be done by temporarily re-CONFIGuring the default modem  firmware
  242. initialization  commands  via  parameter 225 (items 6,  7,  and  8)  before
  243. initializing the Hayes Smartmodem 9600's firmware via parameter 231.
  244.  
  245. RBBS-PC  is  able to interface with the Hayes V-series Smartmodem  9600  at
  246. 300,  1200, 2400, 4800, and 9600 baud.  When operating at the  two  highest
  247. baud  rates,  the Hayes V-series Smartmodem 9600 is limited  to  connecting
  248. with  only  other  Hayes V-series Smartmodem  9600's.   RBBS-PC  recognizes
  249. whenever  the  Hayes  version of  error-correction  protocol,  "LAP-B",  is
  250. enabled between the caller and RBBS-PC.
  251.  
  252. RBBS-PC has been tested with the above active configuration and no problems
  253. have been encountered using the "internal" protocols supplied with RBBS-PC.
  254. Questions  regarding  the  Hayes  V-series  9600  modems  and  any  of  the
  255. "external"  protocols which a SYSOP may choose to make available should  be
  256. addressed to the authors of such protocols.
  257.  
  258.  
  259. 13.  RBBS-PC's FILE MANAGEMENT SUBSYSTEM
  260. ----------------------------------------
  261. The  File  Subsystem is the method by which RBBS-PC maintains the  list  of
  262. files  that  are available for downloading which a caller can  list.   Some
  263. features  of the File System are the ability to list files after a  certain
  264. date,  to list files having a string in their header, and to list files  by
  265. category.  RBBS-PC refers to a file that contains a list of files available
  266. for downloading as a "directory" (i.e. a .DIR file).
  267.  
  268. There are two possible extremes when working with the File System.  One  is
  269. to have multiple separate "directory" files.  The other extreme is to  have
  270. a single master "directory" file (i.e. a single FMS file) that contains the
  271. names,  sizes,  dates,  and  description of all  the  files  available  for
  272. downloading.
  273.  
  274. You  may use both ideas at once if you wish. It is perfectly  allowable  to
  275. use the master FMS directory as well as the smaller ones. CONFIG  parameter
  276. 215 controls whether RBBS-PC looks beyond the FMS directories.  If you have
  277. any  separate  directories, set 215 to NO.  If you have only a  single  FMS
  278. directory, set parameter 215 to YES.  If directory searches are not limited
  279. to  the FMS directories and RBBS-PC does not find the category in  the  FMS
  280. listing, it will look for the old-style DIR files.
  281. RBBS-PC Version CPC17-1A                                    October 2, 1988
  282. Copyright 1988 by D. Thomas Mack                            Page 114 of 232
  283.  
  284. 13.1 Multiple Directory Format
  285. ------------------------------
  286. The  multiple directories, also referred to as the  old-style  directories,
  287. are  simply  text  files. They consist of a filename ending  in  a  certain
  288. extension, specified in CONFIG, common to all the directories.  The default
  289. extension  is  .DIR, but it can be changed via parameter 209.  There  is  a
  290. directory which lists the directory names and their descriptions whose name
  291. is specified via parameter 211 of CONFIG.
  292.  
  293. Each directory is simply a text file. It may have anything in it, including
  294. ANSI  codes. The only restriction is that in order for the N)ew command  to
  295. work properly, the date must be somewhere in the first 31 characters.
  296.  
  297. A file is classified in a directory simply by being put into the file.  The
  298. SYSOP  can  allow the caller to classify uploads (by  setting  the  minimum
  299. security for classifying to a low enough value).  All uploads must go  into
  300. a  single  directory, called the upload directory, specified  in  parameter
  301. 202,  and  it will be in the drive\path specified in  parameter  203.   All
  302. other  directories  must be in the drive\path specified in  parameter  220.
  303. This  includes  the FMS directory (MASTER.DIR) and the list of  DIR  files,
  304. (DIR.DIR).
  305.  
  306. There  are, therefore, four logical areas into which the file subsystem  is
  307. divided.  Each one may reside in a separate DOS directory, or all  of  them
  308. may be lumped together into one main directory.
  309.  
  310.       Logical Area                    CONFIG
  311.  
  312. 1. The files for DOWNLOAD             parameter 204, parameter 205, and
  313.                                       parameter 207
  314. 2. The files that have been uploaded  parameter 201 and parameter 206
  315. 3. The upload directory file listing. parameter 202 and parameter 203
  316. 4. The download directory files.      parameter 220
  317.  
  318. The  files  in  the  download directory are the  only  files  that  may  be
  319. downloaded.  The  SYSOP  may  elect to have the  upload  directory  also  a
  320. download  subdirectory. This can be done by specifying it in  the  download
  321. "PATH".
  322.  
  323. One  interesting  feature  of the File Subsystem is that you  can  build  a
  324. "chain"  of  drives  and subdirectories to search for a  given  file.   The
  325. SYSOP,  via parameter 204, can list the order of the drives to be  searched
  326. when  RBBS-PC  is looking for the file to be downloaded. The  parameter  is
  327. specified with simply the letters, together. For example: BAC would  search
  328. Drive  B,  then Drive A, then Drive C. Use this parameter if  you  want  to
  329. search more than one drive.
  330.  
  331. If  the  files are not in the default directory then you need  to  use  the
  332. CONFIG  parameter 205 and parameter 207.  Parameter 205 specifies that  you
  333. want to sue DOS sub-directories and parameter 207 allows you to list  them.
  334. Use drive:\path format.
  335.  
  336. Both  multiple  directory  .DIR files and the single  FMS  directory  entry
  337. formats  are  the same (see section 13.4) with the exception that  the  old
  338. RBBS-PC Version CPC17-1A                                    October 2, 1988
  339. Copyright 1988 by D. Thomas Mack                            Page 115 of 232
  340.  
  341. style  separate directories need not be fixed length and don't include  the
  342. category code.
  343.  
  344. Any directory can be in the Single FMS format.  This allows special purpose
  345. directories  to be put into FMS format so they can take advantage  of  such
  346. features as resumable listings normally associated just with the Single FMS
  347. environment.   An  unlimited number of lines of text can be  added  to  any
  348. description (see CONFIG parameter 40, parameter 148, and parameter 153).
  349.  
  350. The  file  directories  have  absolutely  no bearing  on  what  is  in  the
  351. subdirectory.  A file can be listed but not exist, and a file, such as  one
  352. uploaded  with  the / for SYSOP option, may exist but not be  entered.  The
  353. file  directories  are simply methods to get the caller a  listing  of  the
  354. files available.
  355.  
  356. 13.2 The Single FMS Directory Format
  357. ------------------------------------
  358. FMS  logically just lumps all the old style separate directories  into  one
  359. directory file, called the MASTER or FMS directory, and assigning each file
  360. a  CATEGORY  CODE, which may correspond to the directory it was in  in  the
  361. original directories.  A utility program called CNVDIR.EXE will do  exactly
  362. this:  combine  the separate directories and add the category code  at  the
  363. end.   If  you do not already have separate directories, simply set  it  up
  364. with a text editor using the columns indicated.
  365.  
  366. 13.3  Advantages and Disadvantages of FMS Over Multiple Directories
  367. -------------------------------------------------------------------
  368. Having a single FMS directory has the following advantages:
  369.  
  370. 1.  Callers  get  the  newest files listed first.   The  directory  can  be
  371.     displayed  EITHER  from top to bottom or bottom to top.   Reading  from
  372.     bottom up is appropriate when files are in date order and new files are
  373.     appended  to the bottom.  When files are alphabetized or  grouped  some
  374.     other way, it is more appropriate to read them from the top down.
  375.  
  376. 2.  The directory is listed with MORE ([Y],N) or files to download prompts
  377.     throughout   the  listing,  so  at  any  time  the  caller  may   begin
  378.     downloading,  and pick up where they left off in the listing after  the
  379.     download is completed.
  380.  
  381. 3.  Wildcard searchs on filenames are supported as well as exact matches on
  382.     strings in the file S)earch command.  Whenever a wild card character (*
  383.     and  ?) is specified in the search string, RBBS-PC  will  automatically
  384.     shift to matching just the file name.  Exact string matches search  the
  385.     full  entry  rather than just the file name.  String  searches  include
  386.     extended  descriptions for FMS directories, but in non-FMS  directories
  387.     only the first line of the file description is searched.
  388.  
  389. 4.  Classification  of  files is easy. All that is necessary is  an  editor
  390.     that produces ASCII files, and a file is classified by a category  code
  391.     of  up to 3 characters. To change a file from directory  to  directory,
  392.     all that is necessary is to change the category code. No more "erase it
  393.     here and add it there."
  394. RBBS-PC Version CPC17-1A                                    October 2, 1988
  395. Copyright 1988 by D. Thomas Mack                            Page 116 of 232
  396.  
  397. 5.  No  SYSOP  maintenance  is necessary for new uploads.  The  caller  can
  398.     classify  the  upload with a category code, and the SYSOP  can  specify
  399.     that the new uploads become instantly available.
  400.  
  401. 6.  Complex classifications can be made very simply. A category code is not
  402.     necessarily  the category the caller must type in. The SYSOP can  elect
  403.     to have a classification system where one code that the caller types in
  404.     will list several different category codes. You can include the file in
  405.     two directories without having two separate entries.
  406.  
  407. 7.  FMS directories can have "headers" (i.e. free text lines not associated
  408.     with  any particular file).  This allows things like column headers  or
  409.     help  to be included, as well as section headers.  A SYSOP may wish  to
  410.     separate  a "communications directory" into different sections such  as
  411.     one  for QMODEM and one for RBBS-PC.  A free text line begins with  "*"
  412.     and is universally displayed if the category code is "***" otherwise it
  413.     is  only  displayed  when  the category associated  with  the  line  is
  414.     selected.
  415.  
  416. 8.  Multi-line descriptions (i.e. "extended" descriptions) are supported in
  417.     both FMS and "old-style" directories.  All columns except the first one
  418.     are  available  for  the description.   For  FMS  directories  extended
  419.     descriptions  have the same characteristics as the file that  they  are
  420.     associated with.
  421.  
  422. 9.  The  ability  to enter "extended" descriptions for  uploaded  files  is
  423.     based on the caller's security level (see CONFIG parameter 127).
  424.  
  425. 10. Caller's can list the RBBS-PC file directories with or without extended
  426.     description.   As  an example, a caller would enter the  command  "L  -
  427.     UPLOADS" to list the files in the directory UPLOADS with only one  line
  428.     descriptions.  The command "L + UPLOADS" would list the same file  with
  429.     extended descriptions.
  430.  
  431. 11. ARC  files  can  be  viewed with the V)iew  command  when  listing  FMS
  432.     directories  and  the listing will resume where it left  off  prior  to
  433.     issuing the V)iew command.
  434.  
  435. 12. Individual entries within a FMS directory can be restricted to specific
  436.     security levels.
  437.  
  438. 13. Comment lines can be included in FMS directories which are never  shown
  439.     to a caller.  Often such comments are useful reminders to the SYSOP who
  440.     is maintaining the FMS directories.
  441.  
  442. 14. Callers  can add upload descriptions without actually uploading a  file
  443.     (see CONFIG parameter 153).  This is typically useful to the SYSOP.  It
  444.     makes  it easy to start an FMS upload directory without having to  know
  445.     anything  about  its  internals  or how to use  an  editor.   With  the
  446.     exception  of  a  CORVUS network environment, FMS  directories  can  be
  447.     updated  without taking the system down first.  All the caller does  is
  448.     issue  the  normal  upload command.  If RBBS-PC  finds  that  the  file
  449.     already  exists and that the caller has the necessary  security  level,
  450.     RBBS-PC  will get the file size and proceed exactly as if the file  had
  451. RBBS-PC Version CPC17-1A                                    October 2, 1988
  452. Copyright 1988 by D. Thomas Mack                            Page 117 of 232
  453.  
  454.     just been uploaded.
  455.  
  456. 15. Searches for new files is EXTREMELY fast because RBBS-PC does not  have
  457.     to search all directories if the single FMS directory is in date  order
  458.     (most recent date last)
  459.  
  460. 16. Latest uploads are always shown first, if the SYSOP has elected to make
  461.     them viewable and the master FMS is in date order.
  462.  
  463. 17. Searches  for  text  will  scan the text  in  the  extended  multi-line
  464.     descriptions.
  465.  
  466. 18. Composite  categories  can  be  logically  constructed  out  of   other
  467.     categories (see section 13.5).
  468.  
  469. 19. Entries  do not have to be physically moved to other .DIR files  to  be
  470.     classified as belonging to it.
  471.  
  472. However,  the  FMS directory also has two remaining limitations  which  may
  473. make it unsuitable for all SYSOPs needs.
  474.  
  475. 1.  Some multi-user environments, such as Corvus's OMNINET, will not  allow
  476.     files  that change in length to be shared. In such an  environment  FMS
  477.     can be used, but the FMS directory cannot be the upload directory.
  478.  
  479. 2.  The date must be in MM-DD-YY format. Any single digit number must  have
  480.     a leading zero.
  481.  
  482. If FMS does not totally satisfy your needs, you can use both.  RBBS-PC  can
  483. be  configured  to look for an old style directory if it does  not  find  a
  484. directory in the FMS.   If it finds one it will display it. If it does not,
  485. it displays the familiar "Directory XXX not found!" message.
  486.  
  487. 13.4  Creating FMS Directories
  488. ------------------------------
  489. If  you already have separate directories, it would be a good idea to  copy
  490. all  of them into a single one called MASTER.DIR.  Detailed directions  are
  491. given in the documentation for CNVDIR.   In DOS this can be done like this:
  492.  
  493.                 COPY xxx.DIR+xxx.DIR+xxx.DIR... MASTER.DIR
  494.  
  495. where  xxx  is the name of the old style directories. The 3  dots  mean  to
  496. continue  until you have all of the directories you wish to include in  the
  497. FMS directory.
  498.  
  499. In addition to the "old style" file directories described in section  13.1,
  500. RBBS-PC supports two types of FMS "directories" -- multiple, single-subject
  501. FMS  directories  or a single multiple-subject master  FMS  directory.   If
  502. there are going to be multiple, single-subject FMS directories, there  must
  503. also  be a "directory of directories" (i.e. a master directory) whose  name
  504. is  specified in CONFIG parameter 211 and there can not be more than 99  of
  505. these single-subject FMS directories.   If there is going to be  a  single
  506. FMS  directory,  it's name is specified in CONFIG parameter  214  and  it's
  507. qualifier is specified in CONFIG parameter 209.
  508. RBBS-PC Version CPC17-1A                                    October 2, 1988
  509. Copyright 1988 by D. Thomas Mack                            Page 118 of 232
  510.  
  511.  
  512. An example of multiple FMS directories that assumes the following:
  513. CONFIG parameter 220 is "C:\FMS",
  514. CONFIG parameter 209 is  "DIR",
  515. CONFIG parameter 211 is "DIR", and the following files existed:
  516.  
  517.    C:\FMS\DIR.DIR
  518.    C:\FMS\ALPHA.DIR
  519.    C:\FMS\BEST.DIR
  520.  
  521. The file ALPHA.DIR can be a FMS directory with an alphabetical list of  all
  522. files and BEST.DIR can be a FMS directory with a date-ordered (latest  date
  523. last) list of the "best" files.
  524.  
  525. An  FMS  directory can have an optional "header" line  that  describes  the
  526. structure  of the directory.  RBBS-PC searches FMS directories from  bottom
  527. to top by default (i.e. the assumption is that they are sorted by date with
  528. the newest entry at the bottom).  To make an FMS directory read from top to
  529. bottom,  the  directory must have the optional "header" line as  the  first
  530. line.   For FMS to read a FMS directory from top to bottom the  first  four
  531. characters in the first line must be "\FMS" and the line must contained the
  532. three  characters "TOP" (i.e. the whole fixed-length line would read  "\FMS
  533. TOP").   For FMS directories not sorted by date, the word "NOSORT" must  be
  534. present  in  the  first  line (i.e. the whole line  would  read  "\FMS  TOP
  535. NOSORT").   The file ALPHA.DIR would have the first line in the  file  read
  536. "\FMS TOP NOSORT".  The file BEST.DIR would have the first line in the file
  537. read  "\FMS TOP" if all searches of the file were to start with the  oldest
  538. (i.e.  first) entry.  It is important to realize that FMS directories  must
  539. have a fixed length in every line.
  540.  
  541. The columns of all FMS directories are set up as:
  542.  
  543. Column               Purpose
  544.  1-13                Filename + description
  545. 14-22                File size
  546. 24-31                Date in MM-DD-YY format
  547. 34-                  Description + category code
  548.  
  549. To add comments to an FMS directory and not have them shown to the  caller,
  550. simply begin the comment line with a slash, "\".
  551.  
  552. To  force  a  line  to be displayed that is  not  associated  with  an  FMS
  553. directory  entry, begin the line with an asterisk and, if it  is  displayed
  554. for only specific categories, the appropriate category restriction.
  555.  
  556. To make an FMS entry visible only to callers with a specific security level
  557. or higher, the first character of the file name must be an equal sign, "=".
  558. For  this  entry, the file name is in columns 2 through  13.   The  minimum
  559. security  to view this entry goes in column 34 and is followed by  a  blank
  560. and  then the description and category code within the columns  appropriate
  561. for them (based on CONFIG parameter 219).
  562.  
  563. CONFIG parameter 219 specifies the length of the "description" field (40 to
  564. 46).  The column contain the "category" codes can be variable as follows:
  565. RBBS-PC Version CPC17-1A                                    October 2, 1988
  566. Copyright 1988 by D. Thomas Mack                            Page 119 of 232
  567.  
  568.  
  569. Length            Columns for description      Category code column
  570.  40                     34-73                        74-76
  571.  41                     34-74                        75-77
  572.  42                     34-75                        76-78
  573.  43                     34-76                        77-79
  574.  44                     34-77                        78-80
  575.  45                     34-78                        79-81
  576.  46                     34-79                        80-82
  577.  
  578. However,  some  text  editors  may have a problem with  lines  80  or  more
  579. columns.
  580.  
  581. The fussiest areas for use with FMS are the DATE and CATEGORY CODE  fields.
  582. These  two  must be absolutely perfect for FMS to  function  properly.  The
  583. others  may be slightly more lenient. In order to get the directory in  the
  584. correct format, insert and delete spaces before and after the column.   The
  585. file name should not have interior or leading blanks.
  586.  
  587. You  must also add a category code to each listing. This is often the  most
  588. difficult  and  time consuming part of setting up FMS. A good  idea  is  to
  589. format the rest of the directory before you add the codes.
  590.  
  591. CONFIG  has  a utility, parameter 187, that will check your  FMS  directory
  592. structure for you.
  593.  
  594. If a caller uploads with a "/" for SYSOP, a *** is placed for the  category
  595. code  and only those with a SYSOP security level may view the listing  (see
  596. CONFIG parameter 125).
  597.  
  598. 13.5 Defining the FMS Category Codes
  599. ------------------------------------
  600. In  order  for FMS to work correctly, the category codes must  be  defined.
  601. This  is done in a file specified in parameter 217 of CONFIG. This file  is
  602. rather interesting in the way it is set up and the possibilities it  brings
  603. up. The format of this file is, with each line being a separate entry:
  604.  
  605.     "<Category name>","<Category codes>","<Category description>"
  606.  
  607. The  category  name  is  what the caller types  in  in  L;xxxxxxxxxx.   The
  608. category codes are a list of the character codes in the FMS directory  that
  609. we  want  to  be under this category name.  Category codes can be  1  to  3
  610. characters  long, though the simplest and most foolproof method is to  make
  611. them  all exactly 3 characters long.  The category description is  a  short
  612. messages that we want displayed when the category is searched for.
  613.  
  614. If the category codes are less than 3 characters in length, blanks must  be
  615. added  to  the right to fill out the length to exactly 3 when  putting  the
  616. category codes on the end of file entry.
  617.  
  618. A  listing can contain several category codes. This means that  a  category
  619. name  of  BASIC  could  have the category codes  BSU,BSG,BSS  in  it.   The
  620. category  codes  may be overlapped in several different  directories.   For
  621. example,  the BASIC directory used as an example could also have each  code
  622. RBBS-PC Version CPC17-1A                                    October 2, 1988
  623. Copyright 1988 by D. Thomas Mack                            Page 120 of 232
  624.  
  625. included in another directory.  UTILS could contain DSU,BSU,PRU (Dos utils,
  626. Basic  Utils,  Printer  utils).  GAMES  could  contain  CGG,BSG,TXG  (Color
  627. Graphics Games, Basic Games, Text games).  BASIC could contain  BSU,BSG,BSS
  628. (Basic Utils, Basic Games, Basic Source).  SOURCE could contain ACS,BSS,PSS
  629. (Assembly  code  source, Basic Source, Pascal source)  Such a  setup  would
  630. look like this:
  631.                "UTILS","DSU,BSU,PRU","Utilities for IBM"
  632.                "GAMES","CGG,BSG,TXG","Games for IBM"
  633.                "BASIC","BSU,BSG,BSS","BASIC programs"
  634.                "SOURCE","ACS,BSS,PSS","Source code for different languages"
  635.  
  636.     The directory might look like:
  637.  
  638. FFIND.ARC      13463   05-24-87  DOS Util look all over disk for file   DSU
  639. WINDOWS.ARC    14562   05-27-87  BASIC Util-Window subroutines, pop up  BSU
  640. BUZOFF.ARC     15324   05-27-87  Turn off printer buzzer on printer     PRU
  641. QUEST.ARC      17325   06-02-87  C/G Game D&D style                     CGG
  642. FFINDSRC.ARC   20358   06-02-87  Source for FFIND.ARC                   ACS
  643. RBBS-SRC.ARC  202562   06-05-87  Source code for RBBS-PC                BSS
  644. QMODEMSC.ARC  106735   06-07-87  Source code for QMODEM SST             PSS
  645. BALLOON.ARC     5634   06-08-87  BASIC Balloon game- GREAT              BSG
  646. STARTREK.ARC   76434   06-10-87  A great game- TEXT                     TXG
  647.  
  648. When someone lists out GAMES, they get QUEST, BALLOON, and STARTREK.
  649.  
  650. You  can  also have simply a one to one correspondence, rather  than  cross
  651. referencing by just having one category code for each category.
  652.  
  653. A  utility that will help you in setting up your FMS directory is  a  SYSOP
  654. function built into CONFIG.  Parameter 187 will test the structure of  your
  655. FMS directory and diagnose any problems.  Be sure to run this utility after
  656. you have tried to set up FMS, or whenever you edit the FMS directory file.
  657.  
  658. 13.6 The "Library" Subsystem, CD-ROM, and FMS
  659. ---------------------------------------------
  660. The RBBS-PC "library" sub-system is highly flexible subsystem that utilizes
  661. DOS  'disk subdirectories.  The "library" subsystem is not limited  to  any
  662. particular medium.  Basically, it relies on three files:
  663.  
  664. CDR.CDR   -  This is the Directory of Directories just like DIR.DIR is  the
  665.     Directory  of Directories for the normal download area.  This  file  is
  666.     located on the drive and path designated in CONFIG parameter 302, has a
  667.     file name equal to the extension designated in parameter 303 , and  the
  668.     extension designated in parameter 303.
  669.  
  670. MASTER.CDR -  This is an FMS style directory.  Highly recommended to have a
  671.     size  of 46 to allow for placing the DISK/AREA number in the last  four
  672.     positions  of description.  This file is located on the drive and  path
  673.     designated  in CONFIG parameter 302.  The following is an example of  a
  674.     master  directory  file,  C:MASTER.CDR,  that might  be  used  for  the
  675.     "library" subsystem.
  676. RBBS-PC Version CPC17-1A                                    October 2, 1988
  677. Copyright 1988 by D. Thomas Mack                            Page 121 of 232
  678.  
  679.      DEMO.DTA         9841  01-01-80 PRACTICE FORM                 680126
  680.      READ.ME           256  01-01-80 INTRODUCTORY TEXT FILE        673102
  681.      READ.ME           109  01-01-80 INTRODUCTORY TEXT FILE        671102
  682.       DK0680   ARC          10-23-87 FORGE VERSION 2.0                200
  683.       DK0673   ARC          10-23-87 FREEWAY ...(Disk 3 of 3)         200
  684.       DK0671   ARC          10-23-87 FREEWAY ... (Disk 1 of 3)        200
  685.      |            |         |        |                            |   |
  686.      +- 1->13     |         |        |                            |   |
  687.      File Name    +- 14->22 |        |                            |   |
  688.                   File Size |        |                            |   |
  689.                             +- 24->31|                            |   |
  690.                             File Date|                            |   |
  691.                                      +- 33->76                    |   |
  692.                                      File Description             |   |
  693.                                                           77->79 -+   |
  694.                                                              DOS      |
  695.                                                            Directory  |
  696.                                                             Number    |
  697.                                                                       |
  698.                                                               80->82 -+
  699.                                                               Category
  700.                                                                 Code
  701.  
  702.     The last four characters of the 46-character file description field are
  703.     used  to  indicate the "library" pseudo-disk that the file is  in.   In
  704.     this  way,  when  a  caller lists files,  it  is  self-evident  in  the
  705.     description which DOS subdirectory the caller must change to within the
  706.     "library" subsystem in order to download the file.
  707.  
  708. RBBS-CDR.DEF  -   This is the key file to the successful operation  of  the
  709.     LIBRARY section.  It consists of three fields on each line.
  710.  
  711.                  "AAAA","BBBBBBBBBBBBBBBBBBBBBB","CCCCCCCCCCCCCCCCCC"cr/lf
  712.  
  713.                  A - A  four  position field numbered from  0001  to  9999.
  714.                      This  is the DISK/AREA number assigned to  a  specific
  715.                      group of files.
  716.  
  717.                  B - This field has no size limit and is a full path to the
  718.                      area excluding the drive: designation. As an example:
  719.  
  720.                            \1_100\DISK0001
  721.                            \GAMES\ADVENTUR\DISK1
  722.                            \A_F\ALPHABET\DISK01\AREA36
  723.  
  724.                  C - This  field has no length limit but should be kept  at
  725.                      around  56  characters to keep from line wrap  on  the
  726.                      display.    It  should  contain  the  TITLE   of   the
  727.                      disk/area.
  728.  
  729.     A  file  containing a description of the library  subsystem's  category
  730.     codes must have the name RBBS-CDR.DEF, be in the same DOS  subdirectory
  731.     as the other RBBS-PC ".DEF" files, and look similar:
  732. RBBS-PC Version CPC17-1A                                    October 2, 1988
  733. Copyright 1988 by D. Thomas Mack                            Page 122 of 232
  734.  
  735.             "0671","\601-700\DISK671","FREEWAY Payroll system (Disk 1 of 3)"
  736.             "0673","\601-700\DISK673","FREEWAY Payroll system (Disk 3 of 3)"
  737.             "0680","\601-700\DISK680","FORGE VERSION 2.0"
  738.  
  739. The "library" subsystem can be supported without using the FMS.  To do this
  740. each "directory" would have ".CDR" as it's extension (i.e. GAMES.CDR) -- or
  741. whatever extension was designated in CONFIG parameter 303.
  742.  
  743. Typically,  the "library" subsystem is used with FMS.  When using FMS  with
  744. the  "library" subsystem it is necessary to add categories to  the  DIR.CAT
  745. file.   One approach that works well is utilizing categories 1-99  for  the
  746. normal  (i.e.  non-library area) downloads and categories 100-200  for  the
  747. "library" downloads.
  748.  
  749. The  basic assumption of RBBS-PC's "library" sub-system is that  files  are
  750. stored  in  DOS subdirectories on the DOS disk drive  specified  in  CONFIG
  751. parameter 301.
  752.  
  753. 13.6.1 How the "Library" Subsystem Works
  754. ----------------------------------------
  755. Before  it  is possible to download from the LIBRARY area it  is  mandatory
  756. that the caller C)hange to the desired library disk.  This is  accomplished
  757. by  using the C)hange command from the library menu.  RBBS-PC  will  accept
  758. any  1  to 4 digit number (padding the front with zeros to make it  a  four
  759. digit  number).   RBBS-PC will then search the RBBS-CDR.DEF file  (position
  760. AAAA only) for an exact match.  If no match is found then RBBS-PC indicates
  761. that  no Library disk has been selected.  If a match is found then  RBBS-PC
  762. will  issue a CHDIR command to the drive specified in CONFIG parameter  301
  763. and the path BBBBBBBB that it constructs from the RBBS-CDR.DEF file.  RBBS-
  764. PC  then informs the caller that Disk AAAA CCCCCCCCCCCC has  been  selected
  765. (i.e. "Disk 0680 FORGE VERSION 2.0").
  766.  
  767. The caller can download individual files from the area selected or A)rchive
  768. all the files in the selected area.  If the caller decides to A)rchive  all
  769. the  files in the selected area, RBBS-PC will SHELL to the Archive  program
  770. designated  in  CONFIG  parameter 313 and located in  the  drive  and  path
  771. designated  by  parameter  312.   RBBS-PC creates  an  ARC  file  with  the
  772. name DKAAAA.ARC,  where AAAA is the disk/area number on the drive and  path
  773. indicated by CONFIG parameter 304.
  774.  
  775. RBBS-PC  will then check to see if there are any subdirectories within  the
  776. selected  area.    If  any  exist  then  RBBS-PC  will  again  Archive  the
  777. subdirectories  and will create ARC files with the name  DKAAAAa.ARC  where
  778. AAAA  is the disk/area number.  The designator, "a", is an arbitrary id  to
  779. differentiate  it from the original ARC name.  If there are more  than  one
  780. subdirectories then the "a" would be replaced by "b", "c", "d", etc.
  781.  
  782. When this is complete the caller is told what files are ready for download.
  783. i.e.
  784.  
  785.      DKAAAA.ARC is ready for download.
  786.      DKAAAAa.ARC is ready for download.
  787.      DKAAAAb.arc is read for download.
  788. RBBS-PC Version CPC17-1A                                    October 2, 1988
  789. Copyright 1988 by D. Thomas Mack                            Page 123 of 232
  790.  
  791. As each file is downloaded successfully it is removed from the list and
  792. is no longer displayed to the user as ready for download.
  793.  
  794. 13.6.2 The "Library" Subsystem and PC-SIG's CD-ROM
  795. --------------------------------------------------
  796. The CD-ROM published by PC-SIG consists of a DOS subdirectory for each 360K
  797. diskette  in the PC-SIG library. Sometimes the disk contains all the  files
  798. already  in the ARC format other times they just contain a group of  files.
  799. The  key  here  is the A)rchive function.  The resulting file  to  be  made
  800. available for download will NEVER be greater than 360k.  This is  important
  801. since a caller may only have a floppy based system and could not capture  a
  802. file any larger than a 360k floppy can contain.
  803.  
  804. The  PC-SIG's  CD-ROM creates the problem of listing  both  the  individual
  805. files  contained on each diskette as well as a summary description  of  the
  806. individual disks.  This can be solved by listing each of the 18,000+ files
  807. in the MASTER.CDR using positions 43-76 for the description, positions  77-
  808. 79  for  the disk drive, and positions 80-82 for the valid  categories  for
  809. downloading.  These are contained in the file specified by CONFIG parameter
  810. 217.
  811.  
  812. MASTER.CDR  might also contain a list of names of the files that  would  be
  813. created  by  the  A)rchive  function.  This allows the  caller  to  scan  a
  814. category (i.e. category 200) for disk titles only.  Note that the files  do
  815. not  exist until the user uses the A)rchive function. A SYSOP who  did  not
  816. wish to allow individual file downloads might only include these entries in
  817. the MASTER.CDR rather than the other 18,000 entries.
  818.  
  819. The directory for the PC-SIG CD-ROM is over 1.5 megabytes in length and can
  820. take up to 10 minutes to search completely (when using a PC at 4.77mhz).
  821.  
  822. If the SYSOP is using FMS, it is recommended that the category file for the
  823. normal FMS directory and the category file for the Library FMS directory be
  824. the same (PC-SIG has 27 different categories for its files).
  825.  
  826. 13.7 Creating the Personal Files Directory
  827. ------------------------------------------
  828. RBBS-PC's  "personal"  file support is analogous to  RBBS-PC's  support  of
  829. "personal"  messages  in  that these files are  specially  addressed  to  a
  830. specific  caller  or  group of callers based on  security.   Personal  file
  831. downloads differ from the general download in three major ways:
  832.  
  833.     1.   the  time limit check is bypassed in personal  downloads,  meaning
  834.          that  a qualifying caller can download a file regardless  of  time
  835.          left.
  836.  
  837.     2.   only  files  explicitly listed in the personal  directory  can  be
  838.          downloaded.  Normally files to be downloaded will be looked for on
  839.          the disk(s) where files are available for downloading whether they
  840.          are listed in a directory or not.
  841.  
  842.     3.   only callers with matching user record or sufficient security  can
  843.          download  a  file.  Normally any caller with  security  enough  to
  844.          issue the download command can download a file.
  845. RBBS-PC Version CPC17-1A                                    October 2, 1988
  846. Copyright 1988 by D. Thomas Mack                            Page 124 of 232
  847.  
  848.  
  849. Personal  files  provide  a way that files can  be  delivered  to  specific
  850. individuals.   As  an  example, a vendor's support  bulletin  board  for  a
  851. software  product  might  make  the upgrade  downloadable  only  by  paying
  852. customers.   A  credit  reporting  corporation  can  make  credit   reports
  853. electronically  available only to the people who order them.  Or,  a  SYSOP
  854. can make a file privately available to only one caller.
  855.  
  856. One  of  the  most useful applications for personal downloads  is  to  make
  857. certain  files available regardless of time remaining.  Previously,  SYSOPs
  858. had  to increase the security of callers or set artificially  high  session
  859. limits  just to make certain large files available.  By putting these  file
  860. names in the personal directory and limited by security level, these  files
  861. can be made available regardless of how little time is left.  For  example,
  862. the large files comprising RBBS-PC can be made downloadable to all  callers
  863. even though they are limited to 30 minutes.
  864.  
  865. Access to personal files can be limited in two ways.  First, the files  can
  866. be  downloaded  only by callers which have a matching value in  their  user
  867. record.   For example, files can be limited by name (any field in the  user
  868. record  can be selected).  Alternatively files can be limited  by  security
  869. level,  meaning  that  a file can be downloaded by  any  person  with  that
  870. security level or higher.  File access based on security level can also  be
  871. accomplished using the standard RBBS-PC file security mechanism, but to  do
  872. so  places the caller's under the standard RBBS-PC constraints  of  maximum
  873. time per session/day.
  874.  
  875. Using the "P)ersonal files" command in the files section, a caller is asked
  876. what  files the caller wants to download.  The only files available to  the
  877. caller  for  downloading are those explicitly listed as  belonging  to  the
  878. caller,  unlike the general download command which will look for any  named
  879. file on the disk.  The caller can ask to List the files available.  Callers
  880. will see only those belonging to them.
  881.  
  882. There  is  a  special  option to download all  and  only  the  "new"  files
  883. specifically addressed to the user by matching a field in the caller's user
  884. record.  RBBS-PC keeps track of whether the caller has ever downloaded  the
  885. personal file.  When listing, new personal files are marked with an "*"  in
  886. front of their names (they are "tagged").  Selecting the new files starts a
  887. multi-file  download  for all and only the personal files  the  caller  has
  888. never successfully downloaded.
  889.  
  890. File you want downloaded ONLY through the personal file features of RBBS-PC
  891. should  be put in their own subdirectory as specified in  CONFIG  parameter
  892. 142.   If  you put the personal files in a download subdirectory  but  they
  893. would be available then to anyone who could name them.  RBBS-PC will search
  894. the  download  areas  for  a  personal file if  it  is  not  found  in  the
  895. subdirectory specified in parameter 142.
  896.  
  897. Second,  in  the  same place as the personal files  themselves,  put  in  a
  898. special  personal  directory with name specified in CONFIG  parameter  143.
  899. This directory is the same format as the general file directories of  RBBS-
  900. PC.  The format is as follows:
  901. RBBS-PC Version CPC17-1A                                    October 2, 1988
  902. Copyright 1988 by D. Thomas Mack                            Page 125 of 232
  903.  
  904.  Default   Field
  905. Positions  Length    Description of Field
  906.  
  907.   1 - 12    12       The  first  12 characters of an entry  have  the  file
  908.                      name, with no internal spaces.
  909.  
  910.  13 - 73  Variable   The  next  group of characters can  have  anything  in
  911.                      them.   This will be displayed to the caller who  asks
  912.                      for  a listing, along with the file name in the  first
  913.                      12 columns.  The length of this group is 21 characters
  914.                      plus the length of the upload description specified in
  915.                      CONFIG (40-46, defaults to 40).  The default length of
  916.                      this field is 61 characters.
  917.  
  918.  74 -104  Variable   The  next  group  of characters are what  is  used  to
  919.                      identify  the  file as "belonging" to the  caller  and
  920.                      must  match  a field in the user  record.   In  CONFIG
  921.                      parameter 43 and parameter 44, the SYSOP specifies the
  922.                      position  in  the  user record to  use  and  how  many
  923.                      characters.   The default is to begin in column 1  and
  924.                      use 31 characters for the caller's name, but any field
  925.                      in the user record can be used. Optionally, a security
  926.                      can  be entered in this last field to limit  the  file
  927.                      based  on  the security level of the caller.   To  use
  928.                      security  rather  than  a match on  the  user  record,
  929.                      simply  put  a  blank as the first  character  in  the
  930.                      field, followed by the security level.
  931.  
  932.    105       1       The last character must be an "*" to signify that  the
  933.                      file  has never been download or an exclamation  point
  934.                      if ever downloaded.
  935.  
  936. This  personal  directory works very much like the File  Management  System
  937. shared  directory,  using a field in the user record as  the  category  and
  938. limiting  callers to their one category, or limiting the file to the  group
  939. of caller's with the minimum required security.  The personal directory  is
  940. fixed length and read in reverse from bottom to top.
  941.  
  942. After  setting up or modifying the personal directory, you use  the  CONFIG
  943. utility  parameter  187  to check whether the personal  directory  has  the
  944. proper format.
  945.  
  946. The personal directory can be created by a text editor (i.e. EDLIN) but  be
  947. sure to put in the "*" in the last column when creating a new entry so that
  948. the  file  will be tagged as new.  Also be sure to make  each  entry  fixed
  949. length.   If the user's identity does not fill out the length of  the  last
  950. field, be sure to pad the record with blanks out to the full length.
  951.  
  952. When  setting  up a personal file directory there are  seven  configuration
  953. options peculiar to personal files:
  954. RBBS-PC Version CPC17-1A                                    October 2, 1988
  955. Copyright 1988 by D. Thomas Mack                            Page 126 of 232
  956.  
  957.    CONFIG                 Description
  958. parameter 43 and  what  part of the user record used to identify  files  as
  959. parameter 44      belonging to the user (beginning column and length),
  960. parameter 143     the name of the personal directory,
  961. parameter 142     the drive and path where the personal files and  personal
  962.                   directory are stored,
  963. parameter 144     the protocol that must be used downloading,
  964. parameter 147     whether the files downloaded are to be concatenated, and
  965. parameter 188     the CONFIG utility to check the structure of the personal
  966.                   directory to make sure it is in the properly format.
  967.  
  968. Parameter 147 and parameter 187 require some explanation of how they  might
  969. be  used.   Limiting  the  caller to a required  protocol  to  use  is  not
  970. something one would generally do.  But, for special purpose downloads, like
  971. downloading  to  a printer, one might want to require ASCII,  for  example.
  972. Or,  if  all callers are to use the same communications package or  only  a
  973. particular protocol is efficient, you can specify what callers must use.
  974.  
  975. Concatenating  files  means  that when multiple  files  are  specified  for
  976. downloading,  the files are sent continuously in one stream of data  rather
  977. than  individually as separate files.  In effect, the files are  physically
  978. combined  at  the  time of downloading.  All  messages  between  files  are
  979. suppressed  -  the only messages that appear to the caller are  those  that
  980. normally  occur when the first file transfer starts and when the last  file
  981. transfer  ends.   Concatenation  is  currently  supported  only  for  ASCII
  982. downloads.
  983.  
  984. An  example  of  a situation that might use this feature of  RBBS-PC  is  a
  985. business  that generates short reports for clients.  Their clients want  to
  986. call in remotely to get time-critical reports and print them right in their
  987. office  on pre-formatted paper.  Each report is a separate file on  RBBS-PC
  988. with all the necessary printer commands already included in each file.
  989.  
  990. A  SYSOP might set up RBBS-PC such that the main menu was  restructured  to
  991. make  the P)ersonal files function be P)rint reports to reflect  the   more
  992. specialized  nature  of the board.  Callers to this board  would  call  in,
  993. identify themselves, and select P)rint reports from the main menu.  Callers
  994. could  use  L)ist  to see what is available if they are  looking  for  some
  995. report in particular;  just select all new reports; or ask for a particular
  996. report if they must have it immediately.
  997.  
  998. In the last two cases, RBBS-PC would notify the caller to set up to receive
  999. and  press  [ENTER] when ready.  The pre-formatted  reports  with  embedded
  1000. printer  control  sequences  would stream out  onto  the  paper  (including
  1001. formatting  like bold or underline) positioning the text to fit  in  boxes.
  1002. The  paper is automatically advanced as needed.  When done,  RBBS-PC  beeps
  1003. the  user,  who then turns the "save to printer" feature  off  of  whatever
  1004. communications package is being used.
  1005.  
  1006. To  set up this application, the personal file options would be  configured
  1007. to  use  the caller's id (e.g. account number).  The  files  and  directory
  1008. would be put in a special subdirectory not shared with anything else.   The
  1009. CONFIG  parameters  would be set to specify that caller's  must  use  ASCII
  1010. ("A") as their protocol and that multi-file downloads will be concatenated.
  1011. RBBS-PC Version CPC17-1A                                    October 2, 1988
  1012. Copyright 1988 by D. Thomas Mack                            Page 127 of 232
  1013.  
  1014. Another example is that of an electronic job placement service that  wanted
  1015. to  limit non-subscribers to a security level 5 with 10 minutes.   However,
  1016. they  also want non-subscribes to be able to download a file  of  potential
  1017. employment opportunities that may take more than 10 minutes.  The following
  1018. entries would be put into PRIV.DIR:
  1019.  
  1020. JOBSFORU.ARC   282888  07-14-87  List of job opportunities you might want 5
  1021.           /|\                                                           /|\
  1022.           12                                                            74
  1023.  
  1024. Each  record is padded with blanks so that 29 blank characters  follow  the
  1025. security  level,  followed  by  an '*'.   The '*'  is  not  shown  in  this
  1026. documentation since it is in a column too far to the right.
  1027.  
  1028. 14.   SETTING UP ".BAT" FILES FOR RBBS-PC
  1029. -----------------------------------------
  1030. Many SYSOPs have set up batch files to invoke RBBS-PC automatically and  to
  1031. re-invoke  RBBS-PC should there be a power outage.  These files range  from
  1032. the  simple to the sublime in terms of complexity.   In a multiple  RBBS-PC
  1033. environment,  these .BAT files CANNOT BE SHARED.  If you are going to  exit
  1034. RBBS-PC and transfer control to DOS remotely (either via the SYSOP function
  1035. 7 or  via "doors"), it is necessary that:
  1036.  
  1037.      1.  RBBS-PC be executed from a batch file.
  1038.      2.  The  batch  file  which  is  executing  RBBS-PC  contain  an  "IF"
  1039.          statement  that checks for the existence of the batch  file  which
  1040.          RBBS-PC dynamically builds when either "doors" or SYSOP function 7
  1041.          is invoked.
  1042.      3.  Within  the "IF" statement, the logic exists such that  the  batch
  1043.          file  dynamically  built by RBBS-PC for the "doors"  functions  or
  1044.          SYSOP function 7 will be invoked if it exists.
  1045.  
  1046. As a very simple example, let us assume that:
  1047.  
  1048.      1.  the  batch file that invokes RBBS-PC is named A:RBBS.BAT, and that
  1049.          is what was entered for parameter 104 of CONFIG,
  1050.      2.  the name of the batch file that RBBS-PC will build dynamically for
  1051.          either  "doors"  or SYSOP function 7 is A:RCTTY.BAT, and  that  is
  1052.          what was entered for parameter 103 and
  1053.      3.  the  compiled  version of RBBS-PC is being executed and  is  named
  1054.          RBBS-PC.EXE and is on the default disk drive.
  1055.      4.  you have elected to use the watchdog utility program.
  1056.      5.  COM1 was designated as the communication port to be used by RBBS-PC.
  1057.      6.  the CALLERS file is on drive A.
  1058.  
  1059. Then   A:RBBS.BAT  (in  a  non-MultiLink  environment)  would  contain  the
  1060. following:
  1061.      IF EXIST A:RBBSxF1.DEF DEL A:RBBSxF1.DEF
  1062.      IF EXIST A:RCTTY.BAT DEL A:RCTTY.BAT
  1063.      RBBS-PC x filename  (see note of values available for "x" and "filename")
  1064.      IF EXIST A:RBBSxF1.DEF GOTO EXIT
  1065.      IF EXIST A:RCTTY.BAT A:RCTTY.BAT
  1066.      A:RBBS.BAT
  1067.      :EXIT
  1068. RBBS-PC Version CPC17-1A                                    October 2, 1988
  1069. Copyright 1988 by D. Thomas Mack                            Page 128 of 232
  1070.  
  1071.     NOTE:   When running RBBS-PC.EXE, RBBS-PC will check for the "x" in the
  1072.     command  line  that invoked RBBS-PC.   The "x" on the execute  line  is
  1073.     extremely  important to the correct operation of RBBS-PC.   If you  are
  1074.     running  in a local area network environment then the "x" should  be  a
  1075.     number  between "1" and "0" or a letter between "A" and "Z".  If "x" is
  1076.     omitted from the command line, RBBS-PC will look for a file named RBBS-
  1077.     PC.DEF.   RBBS-PC  uses   the  parameter   in  the   command  line   to
  1078.     determine   the correct RBBSxPC.DEF file to use for  its  configuration
  1079.     parameters  if  the second parameter is not  present.   If  the  second
  1080.     parameter is present,  then RBBS-PC assumes this is the fully qualified
  1081.     file name for the .DEF file that this node should use.
  1082.  
  1083.  
  1084. 15.  THE USE OF RBBS-PC "DOORS"
  1085. -------------------------------
  1086. The  RBBS-PC "door" concept is that of allowing a SYSOP to set up a  "door"
  1087. through which users can exit from RBBS-PC and enter other applications.  In
  1088. previous versions of RBBS-PC (i.e.  prior to CPC12-3A) this had been called
  1089. "windows"  but  because  of the confusion this created with  the  WINDOWing
  1090. concepts of other software, it has been re-labeled "doors".
  1091.  
  1092. RBBS-PC's   "doors"  are nothing more than .BAT files that the  SYSOP   has
  1093. created   to   allow  users  to  exit  from  RBBS-PC   and   enter    other
  1094. applications (i.e.  databases, etc.).  The SYSOP is responsible for writing
  1095. the  .BAT  files that users will be allowed to invoke.  Assuming that RBBS-
  1096. PC is brought up by DOS via an AUTOEXEC file that invokes RBBS.BAT,  a door
  1097. called  EDIT exists that consists of a .BAT file (EDIT.BAT) which  contains
  1098. the  commands CTTY, EDLIN, and RBBS.BAT.  In order to exit RBBS-PC  (either
  1099. for a "door" or for the remote SYSOP function 7) without the code that  the
  1100. BASIC compiler generates for you dropping the remote user, it is  necessary
  1101. for  the compiler that RBBS-PC is compiled under be "patched" as  described
  1102. in  Appendix  T otherwise the user will be disconnected upon  returning  to
  1103. RBBS-PC.  Here is pictorially what happens:
  1104. RBBS-PC Version CPC17-1A                                    October 2, 1988
  1105. Copyright 1988 by D. Thomas Mack                            Page 129 of 232
  1106.  
  1107.                         DOS
  1108.                          |
  1109.                         \|/
  1110.                     AUTOEXEC.BAT
  1111.                          |
  1112.                         \|/
  1113.                       RBBS.BAT <---------------------------------+
  1114.                         \|/                                      |
  1115.                          +--------->RBBS-PC.EXE                  |
  1116.                                         |                        |
  1117.                                        \|/                       |
  1118.                                       "RUN"                      |
  1119.                                         |                        |
  1120.                                         |                        |
  1121.                          +<-------------ends                     |
  1122.                          |                                       |
  1123.                        RBBS.BAT                                  |
  1124.                          |                                       |
  1125.                         \|/                                      |
  1126.                     RCTTY.BAT<-----invokes door called "EDIT"    |
  1127.                          |                                       |
  1128.                         \|/                                      |
  1129.                      EDIT.BAT                                    |
  1130.                          |                                       |
  1131.                          +--------->EDLIN.COM                    |
  1132.                                         |                        |
  1133.                                         |                        |
  1134.                      EDIT.BAT <--------ends                      |
  1135.                          |                                       |
  1136.                         \|/                                      |
  1137.                      RBBS.BAT                                    |
  1138.                         \|/                                      |
  1139.                          +--------->RBBS-PC.EXE                  |
  1140.                                         |                        |
  1141.                                         |                        |
  1142.                                    welcome back from             |
  1143.                                    door and RBBS-PC ------------>|
  1144.                                    continues
  1145.  
  1146. A sample .BAT file for a program called TEST.EXE that assumes:
  1147. 1.  That you are going to be using COM1.
  1148. 2.  That the program "TEST.EXE" is on the default drive.
  1149. 3.  That the batch file to invoke RBBS-PC is called "RBBS.BAT."
  1150. 4.  The the batch file "RBBS.BAT" is on the default drive.
  1151.  
  1152. Would look like this using the CTTY METHOD:
  1153.              CTTY COM1
  1154.              TEST.EXE
  1155.              CTTY CON
  1156.              RBBS.BAT
  1157. The  first command, "CTTY COM1", assigns most standard input and output  to
  1158. the communications port number 1.  The second command, "TEST.EXE",  invokes
  1159. some test program that you write that reads from and writes to the standard
  1160. input  and  output devices (i.e. the keyboard and the screen).   The  third
  1161. RBBS-PC Version CPC17-1A                                    October 2, 1988
  1162. Copyright 1988 by D. Thomas Mack                            Page 130 of 232
  1163.  
  1164. command,  "CTTY CON", reassigns the standard input and output back  to  the
  1165. local PC's keyboard and screen whenever TEST.EXE ends.  The fourth  command
  1166. simply invokes another batch file named RBBS.BAT (which presumably  invokes
  1167. RBBS-PC).
  1168.  
  1169. Would look like this using the REDIRECT I/O METHOD:
  1170.  
  1171.              COMMAND /C TEST.EXE <COM1 >COM1
  1172.              RBBS.BAT
  1173.  
  1174. The  first command, "COMMAND /C TEST.EXE <COM1 >COM1", starts  a  secondary
  1175. command  processor,  loads  TEST.EXE and assigns most  standard  input  and
  1176. output  to the communications port number 1.  "Most" is the key  word  here
  1177. since  PC-DOS does not have a way of redirecting "STANDARD ERROR"  like  it
  1178. does for "STANDARD IN and STANDARD OUT".  To solve this problem  STDERR.COM
  1179. is included as part of the basic RBBS-PC system.  This program was provided
  1180. by  Quarterdeck Systems.  Run "STDERR.COM" one time only before  you  start
  1181. RBBS-PC.   I suggest that you include it in your AUTOEXEC.BAT  file.   This
  1182. program works with all versions of PC-DOS 2.0 through 3.2.
  1183.  
  1184. Would look like this using the DEVICE DRIVER METHOD:
  1185.  
  1186.              CTTY GATE1
  1187.              TEST.EXE
  1188.              RBBS.BAT
  1189.  
  1190. The first command, "CTTY GATE1", assigns most standard input and output  to
  1191. the  device  drive named "gateway".  Since it is a device  driver  it  must
  1192. exist  in  your CONFIG.SYS.  The second command, "TEST.EXE",  invokes  some
  1193. test  program  that you write that reads from and writes  to  the  standard
  1194. input  and  output devices (i.e. the keyboard and the screen).   The  third
  1195. command,  "CTTY CON", reassigns the standard input and output back  to  the
  1196. local PC's keyboard and screen whenever TEST.EXE ends.  The fourth  command
  1197. simply invokes another batch file named RBBS.BAT (which presumably  invokes
  1198. RBBS-PC).
  1199.  
  1200. To first set up and test a door, DO NOT USE RBBS-PC.  Rather set up with
  1201.  
  1202. 1.   your  modem  on auto-answer (i.e. it answers the phone)
  1203. 2.   a .BAT file that redirects all input and output to the communications
  1204.      port that you are going to use using the IBM DOS CTTY command.
  1205. 3.   make sure the .BAT file invokes the program that you want to use as
  1206.      a "door."
  1207. 4.   invoke the .BAT file that you set up in steps 2 and 3.
  1208. 5.   dial up the modem that you set in auto-answer mode in step 1.
  1209. 6.   get your "door" to work in this environment.
  1210.  
  1211. If you have problems with steps 1 through 6, call your friendly IBM support
  1212. or  the vendor of the software that you want to use as a door and ask  them
  1213. to  teach  you  about either their software or the CTTY command  and  their
  1214. software's compatibility with the CTTY command.
  1215. RBBS-PC Version CPC17-1A                                    October 2, 1988
  1216. Copyright 1988 by D. Thomas Mack                            Page 131 of 232
  1217.  
  1218. AFTER YOU HAVE YOUR DOOR WORKING, to set up a "door" for RBBS-PC, you must
  1219.  
  1220. 1.   list   the  name  of  the door (i.e.  the .BAT file which you  already
  1221.      got working and debugged and are responsible for setting up) in MENU5.
  1222. 2.   indicate that  doors are  available  (via  CONFIG's parameter 101).
  1223.  
  1224. When a user invokes the D>oor command, RBBS-PC will:
  1225.  
  1226.     1.  List MENU5,
  1227.     2.  Check that the door that the user selects was specified in MENU5,
  1228.     3.  Check that the .BAT file exists (on the default drive),
  1229.     4.  Dynamically create a .BAT file with the name specified
  1230.         by the SYSOP in parameter 103 of CONFIG that:
  1231.             a.  invokes the .BAT file of the window specified,and
  1232.             b.  re-invokes RBBS-PC after the user EXITS from the
  1233.                 "door" by invoking the .BAT file that the SYSOP
  1234.                 specified in parameter 104 of CONFIG.
  1235.  
  1236. The   purpose of "doors" is to allow for the "horizontal" growth of   RBBS-
  1237. PC.   Clearly  RBBS-PC has about all that IBM's BASIC compiler can  handle.
  1238. In  order  to not limit the application of RBBS-PC either to BASIC  or  the
  1239. current  compiler,  "doors" was chosen as a mechanism to allow  SYSOPs   to
  1240. make available other features (i.e.  databases,  games,  etc.).   Hopefully
  1241. with  RBBS-PC as a base,  the limitations on doors will only be the SYSOP's
  1242. resourcefulness AND IBM'S DISK OPERATING SYSTEM (see Appendix W)!
  1243.  
  1244. The   design of the .BAT file that is to be used as a "door"  is   critical
  1245. and  is  the responsibility of the SYSOP.   At the very minimum  it  should
  1246. handle  the communication port I/O.   This can be done in a very  primitive
  1247. way  using  the  DOS CTTY command as described in section 15.
  1248.  
  1249. When  the file RCTTY.BAT is executed,  it executes another batch file  with
  1250. the  name of that particular door.   DOS does not return to the  RCTTY.BAT.
  1251. So, at the end of your doors batch file, you must reinvoke RBBS.BAT.
  1252.  
  1253. The way that "doors" works is to check to see if the door name specified is
  1254. in  MENU5.  If it is in all capital letters in the RBBS-PC file  MENU5,  it
  1255. runs the batch file of that name with the extension ".BAT".
  1256.  
  1257. In  general,  the program invoked as a "door" has to do is print everything
  1258. to  the  communications port and if you wish, echo it to the  screen.   The
  1259. initial  part  of any "door" should read in the parameters  passed  to  the
  1260. "door"  in  the "node" record and establish  the  communications  parameter
  1261. appropriately.
  1262.  
  1263. Finally,  if  the preceding discussion of "doors" is a complete mystery  to
  1264. you,  contact a SYSOP of an RBBS-PC that is using "doors" and ask for help.
  1265.  
  1266. CHESSDOR  is one of the more professional "doors" that has been shared with
  1267. me.  It was written by Bob Westcott and his data number is (603) 424-5497.
  1268. You may also want to talk to John Morris via his RBBS-PC data number  (702)
  1269. 673-3387 regarding "doors", as he has had extensive experience with them.
  1270. While I don't suppose it needs to be mentioned, if you call Bob and take up
  1271. their  time  learning  about "doors" for personal  gain  (i.e.  you  are  a
  1272. RBBS-PC Version CPC17-1A                                    October 2, 1988
  1273. Copyright 1988 by D. Thomas Mack                            Page 132 of 232
  1274.  
  1275. consultant  or  some company's employee being paid to write a "door")  have
  1276. the courtesy to tell them.   The "user helping user" concept does NOT imply
  1277. that  anyone  should  be  taken advantage.  Bob (or  anyone  else  who  has
  1278. acquired  specialized knowledge) has the right to be remunerated for  their
  1279. efforts if their knowledge is being used to further commercial purposes and
  1280. they request it.
  1281.  
  1282. The  "door"  concept  stretches IBM's DOS'  capabilities  and  requires  an
  1283. extraordinary  knowledge of how both DOS, the DOS CTTY command,   and  .BAT
  1284. files work.
  1285.  
  1286. 16.   THE SECURITY FEATURES OF RBBS-PC
  1287. --------------------------------------
  1288. RBBS-PC  has  always been an open system designed for public use.  A  SYSOP
  1289. should   always   ASSUME that EVERY FILE ON THE PC running RBBS-PC  CAN  BE
  1290. DOWNLOADED   AND/OR    DESTROYED.     However,    RBBS-PC   has   extensive
  1291. safeguards   that   systematically   enhance  security  and  privacy.   For
  1292. example,  RBBS-PC  has  the  logic within  it's  code  to  prohibit  anyone
  1293. (including the SYSOP) from downloading the RBBS-PC "system" files described
  1294. in  section 5.1.   RBBS-PC can still be run as  a  wide-open  system,   but
  1295. the  SYSOP  has  many additional options   to   restrain   access.    These
  1296. security options make RBBS-PC much more suitable for  private  and business
  1297. use.
  1298.  
  1299. RBBS-PC's security is controlled by three things:
  1300.  
  1301.      1. the system configuration file (RBBS-PC.DEF),
  1302.      2. the  two external security files for
  1303.            a. passwords (PASSWRDS), and
  1304.            b. file downloads (FILESEC), and
  1305.      3. the users file (USERS) in which each user has an assigned
  1306.         security level.
  1307.  
  1308. The  users  file is controlled by the SYSOP  user  maintenance  function  5
  1309. as described in section 17.  To change a specific users security level  you
  1310. select  the M>odify option and then the S>ecurity option.  This allows  you
  1311. to set  the security level for a user.  Users cannot set their own security
  1312. levels.   Section  16.3 describes how to implement special  passwords  that
  1313. provide  special  privileges to the groups that issue them.   Section  16.4
  1314. describes  how specific files, groups of files, or even whole disk  volumes
  1315. can have download security levels associated with them.
  1316.  
  1317. 16.1 RBBS-PC's Security Features
  1318. --------------------------------
  1319. Each  user has an assigned security level.    This is an integer   in   the
  1320. range  -32,000  to +32,000.   There are then over 65,000 possible  security
  1321. levels.    Each  command in RBBS-PC also has a security level assigned   to
  1322. it.    Security  assignments  are  controlled  by the  SYSOP.    To  use  a
  1323. command,   the   caller's  security level must be at least as high  as  the
  1324. command's security  level.
  1325.  
  1326. The  SYSOP can assign a file or group of files both a security level and  a
  1327. password.    To  download a file,  a caller must have a security level   at
  1328. least as high as the file's and be able to give the file's password (if one
  1329. RBBS-PC Version CPC17-1A                                    October 2, 1988
  1330. Copyright 1988 by D. Thomas Mack                            Page 133 of 232
  1331.  
  1332. is  present).    All  users must pass these   security   tests,   including
  1333. anyone  with  SYSOP privileges.
  1334.  
  1335. Messages  can  now  be  assigned a password by  their  creator.  Then  only
  1336. persons who are able to give that password can read  or  kill the  message.
  1337. Messages  with  password protection will show <PROTECTED>   when   scanned.
  1338. Callers  have  no way of distinguishing messages to   private   individuals
  1339. and  to  groups  except by how they are addressed.    Persons  with   SYSOP
  1340. privileges can read all messages.   Section 16.2's description of sending a
  1341. message  to an AUTHORS SIG as an addressee with the password of  AUTHORONLY
  1342. shows how to send a message to a special group.
  1343.  
  1344. Security  violations  are  logged  to  the  CALLERS  file.   These  include
  1345. attempting  to  use functions without sufficient  security  clearance,  and
  1346. failure to give required passwords.
  1347.  
  1348. RBBS-PC's default configuration is that of an "open" system.
  1349.  
  1350. RBBS-PC's security system provides the SYSOP with several choices on how to
  1351. run RBBS-PC. The chief ones are as follows:
  1352.  
  1353. 1.  Change the bulletin board from an open system available to all callers,
  1354.     to   a  pre-registered system available only to specified  users.    To
  1355.     support   this  option,   there  is  a  function  in  the  SYSOPs  user
  1356.     maintenance option  5  to ADD users.
  1357. 2.  A SYSOP can set up different "classes" of users by assigning  different
  1358.     security levels to different users.   Concurrently the SYSOP would have
  1359.     to     assign  different security levels to different  commands.    For
  1360.     example   new   callers  might be permitted only to  leave  a  comment,
  1361.     read  bulletins,  and   list  files  that  can be downloaded.  Or there
  1362.     might  be  a  group  of  files   assigned a security  level  that  only
  1363.     members of a special interest group can  download.
  1364. 3.  The  SYSOP  can  segregate the functions of the  bulletin  board   into
  1365.     different   groups based on a password.   A specific file or  group  of
  1366.     files   can  be  downloadable  only to those who  knew  the   password.
  1367.     Similarly,  messages  can be made open to everyone knowing the password
  1368.     but   closed   to  everyone else.  This way there can  be  semi-private
  1369.     portions of the bulletin  board.
  1370.  
  1371. 16.2 Examples of Uses for RBBS-PC's Security System
  1372. ---------------------------------------------------
  1373. Some  examples of how a SYSOP can tailor RBBS-PC using RBBS-PC's  extensive
  1374. security features follow.
  1375.  
  1376. SPECIAL INTEREST GROUPS --  A special interest group (SIG) in a users group
  1377. wishes  to  run  a RBBS-PC for both the general public and  its  own   use.
  1378. An   example would be an authors SIG for persons interested  in  publishing
  1379. books  and  articles  or developing commercial software.   A definite  need
  1380. would  exist to be able to address messages to everyone in the SIG  without
  1381. making   them   open   to   every caller.   The  SIG  would  establish  the
  1382. convention   to   password protect general SIG messages with  the  password
  1383. AUTHORONLY,  and to  address  them to AUTHORS SIG.
  1384. RBBS-PC Version CPC17-1A                                    October 2, 1988
  1385. Copyright 1988 by D. Thomas Mack                            Page 134 of 232
  1386.  
  1387. Another  example  would be a bulletin  board  devoted  to the  exchange  of
  1388. software.    Allowing  persons to use the message  subsystem   would   only
  1389. interfere with the primary purpose of  the  bulletin  board.  Therefore the
  1390. SYSOP  removes  from  the  menu  the functions  for  leaving   and  reading
  1391. messages.   To prevent a person from using the functions to leave or read a
  1392. message  (even  though  they are not displayed),   the SYSOP assigns  these
  1393. functions  a security level higher than a person who logs on normally would
  1394. be assigned.
  1395.  
  1396. Another  example of using RBBS-PC's security system would be to set  up  an
  1397. agreed  upon temporary password such that when a user logs onto the  system
  1398. they  can issue the password and get longer than normally allowed.   If the
  1399. time  for  normal users is 30 minutes,  the SYSOP can set up  the   special
  1400. password  SOFTEXCHANGE,  with  a maximum time on  of  150  minutes  instead
  1401. of  the  normal  30.    By shifting over to  this  special  password  after
  1402. logging in, members can get extra time if they need it.
  1403.  
  1404. SOFTWARE SUPPORT --  An author of a freeware program offers RBBS-PC support
  1405. to   all  persons  who register their copies and send a  contribution   of,
  1406. say,  $35 per copy.   The  registered user can get answers for problems and
  1407. download   free   updates   and  sample applications.    The  author  wants
  1408. anyone  to  be  able  to  call just to find out about  the  service.    New
  1409. callers get a security level  of  2  automatically assigned to them.   This
  1410. allows  them to  use  only the  message subsystem.   The file subsystem  is
  1411. assigned  a  security level of  7.   Contributors  are added by  the  SYSOP
  1412. with a security level of 7 and a  pre-assigned password.  Except for  SYSOP
  1413. functions,  registered users have free  reign in the RBBS-PC.
  1414.  
  1415. CLIENT   SUPPORT   --   A  SYSOP on a public  RBBS-PC  also  works  as    a
  1416. management   consultant.  She has several associates who work with  her  on
  1417. projects.   She   needs to be able to send and receive  messages  from  her
  1418. associates which the  general  public  should  not see.   So they agree  on
  1419. a  message  password  NOTPUBLIC. To support her different clients she  also
  1420. needs  to  leave  private  files  for downloading.    To  each  client  she
  1421. assigns  a  special  downloading   password.   To restrict  downloading  to
  1422. just  that client,  file names are put  in the file security file with  the
  1423. appropriate  password.  Only persons with  the password can  then  download
  1424. them.
  1425.  
  1426. PRIVILEGED  ELECTRONIC MAIL --  A company uses RBBS-PC to help support  its
  1427. regional offices.  Only regional vice-presidents should be able to download
  1428. certain management reports.   In file security these reports are assigned a
  1429. high security level of 9, which only managers get.
  1430.  
  1431. 16.3 How to Implement the Password File
  1432. ---------------------------------------
  1433. CONFIG  allows  the SYSOP to designate the name of the file containing  the
  1434. privileged group passwords to RBBS-PC.   Since this file is a normal  ASCII
  1435. file,  the   SYSOP  can  use  any  text editor to create and   update   the
  1436. file.   Put   the   information  for each password on  a  single  line  and
  1437. separate the fields with  commas.  It is important to note that EACH record
  1438. of  the  password must contain ELEVEN parameters (i.e. TEN  commas).    For
  1439. the password file, the format is:
  1440. RBBS-PC Version CPC17-1A                                    October 2, 1988
  1441. Copyright 1988 by D. Thomas Mack                            Page 135 of 232
  1442.  
  1443. parm1,parm2,parm3,parm4,parm5,parm6,parm7,,parm8,parm9,parm10,parm11
  1444.  
  1445. where:
  1446.  
  1447. parm1  -- password that this line applies to
  1448. parm2  -- level> security level for password, if any, or if  no  password,
  1449.           then security level this line applies to
  1450. parm3  -- maximum time in minutes for a single session
  1451. parm4  -- maximum time in minutes per day
  1452. parm5  -- number of days in the subscription period
  1453. parm6  -- start time, in format HHMM 24 hour style, parameters apply
  1454. parm7  -- end time, in format HHMM 24 hour style, parameters apply
  1455.  
  1456.        The start/end time are limits on all other parameters:  meaning that
  1457.        they  apply  only  during  the  specified  times.    Specifying   no
  1458.        start/end times means that the rest applies all day.
  1459.  
  1460. parm8  --  the  type of ratio method to use.  This should  be  one  of  the
  1461.        following:
  1462.             '0' - meaning use the files uploaded to files downloaded ratio
  1463.             '1' - meaning use the bytes uploaded to bytes downloaded ratio
  1464.             '2' - meaning use the files per day restriction
  1465.             '3' - meaning use the bytes per day restriction
  1466.        NOTE:
  1467.        FIRST  TIME CALLERS MUST UPLOAD AT LEAST ONE  FILE  (BYTE)
  1468.        BEFORE   DOWNLOADING   UNLESS  THEY  ARE:
  1469.                  EXEMPT FROM THE RATIO REQUIREMENTS,
  1470.                  ARE USING THE DAILY RATIO METHOD, OR
  1471.                  AN INITIAL UPLOAD CREDIT HAS BEEN GRANTED.
  1472.        THE INITIAL CREDIT FIELD IS IGNORED FOR METHODS 2 AND 3.
  1473.  
  1474. parm9 -- the ratio field.  This must be any number greater than zero  where
  1475.          '0' means this security level is exempt from a ratio  requirement.
  1476.          A positive integer, such as 15, placed in this parameter  requires
  1477.          that  the  caller  maintain a ratio of a least 1  file  (or  byte)
  1478.          uploaded  for every 15 files (or bytes) downloaded.  The ratio  of
  1479.          uploads  to downloads can be cumulative over multiple days  or  it
  1480.          can be limited to the current day's activities of the caller.
  1481.  
  1482. parm10 - the  initial  credit  field.  This can  be  any  positive  integer
  1483.          including  zero.  The use of ratio methods 2 and 3 in  conjunction
  1484.          with  this field can restrict the number of files (or bytes)  that
  1485.          can be downloaded by an individual or group of callers per day.
  1486.  
  1487. parm11 - the  elapsed  time  (in seconds) that a  caller  must  wait  after
  1488.          logging on before "doors"or file downloading (either, neither,  or
  1489.          both) are permitted to the caller.  See the description of  CONFIG
  1490.          parameter 155 in section 11.8 for a fuller description of how this
  1491.          RBBS-PC option functions.
  1492. RBBS-PC Version CPC17-1A                                    October 2, 1988
  1493. Copyright 1988 by D. Thomas Mack                            Page 136 of 232
  1494.  
  1495. Here are some examples of how the PASSWRDS file might be used:
  1496.  
  1497. Contents of PASSWRDS File           Explanation
  1498.  
  1499. ,5,50,,,0001,0600,,,,           Security  level 5 gets 50  session  minutes
  1500. ,5,25,,,,,,,,                   between  00:01 AM and 6 AM, and 25  minutes
  1501.                                 otherwise.
  1502.  
  1503. ,7,50,70,730,,,,,,              Security level 7 has a subscription  period
  1504.                                 of  2  years  and a  session  limit  of  50
  1505.                                 minutes, and a daily limit of 70 minutes.
  1506.  
  1507. BIGTIME,6,52,,,,,,,,            Temporary password BIGTIME gets 52  minutes
  1508.                                 per session and a security of 6.
  1509.  
  1510. EXTEND,5,120,,9999,,,,,,        Temporary password EXTEND gets 120  minutes
  1511.                                 for the current session (the user's elapsed
  1512.                                 time  per day would still  remain  whatever
  1513.                                 was set in CONFIG parameter 8), a temporary
  1514.                                 security  level  of 5, and  a  subscription
  1515.                                 period of 9,999 days.
  1516.  
  1517. ,7,128,256,,,,,,,120            Users who log on with a security level of 7
  1518.                                 are  automatically granted 128  minutes  on
  1519.                                 the  system for each session,  256  minutes
  1520.                                 total for each day (independent of what was
  1521.                                 set  in parameter 8 of CONFIG),  and  their
  1522.                                 subscription period remains unchanged  from
  1523.                                 whatever it was before, but they must  wait
  1524.                                 120 seconds before being able to exit to  a
  1525.                                 "door" or download a file.
  1526.  
  1527. SKIPRATIO,170,120,200,90,0600,1200,0,0,,
  1528.                                 Temporary  password 'SKIPRATIO' grants  the
  1529.                                 caller  a security level of 170, a  session
  1530.                                 limit of 120 minutes, a daily time limit of
  1531.                                 200  minutes, a 90 day subscription period,
  1532.                                 during the hours of 6AM until noon with  no
  1533.                                 ratio limits.
  1534.  
  1535. ,140,60,60,365,0001,2400,1,10,, Users  with  a security level 140,  have  a
  1536.                                 session limit of 60 minutes, a daily  limit
  1537.                                 of 60 minutes, a one-year subscription, but
  1538.                                 during  any  hour  of  the  day  they  must
  1539.                                 maintain  a  ratio of 1 byte  uploaded  for
  1540.                                 every  10  bytes downloaded.  There  is  no
  1541.                                 initial upload credit. Therefore, an upload
  1542.                                 must take place before a download.
  1543.  
  1544. ,150,70,,90,,,0,15,2,3600       Users with a security level of 150, have  a
  1545.                                 session  limit  of  70 minutes,  a  90  day
  1546.                                 subscription,  must maintain a ratio  of  1
  1547.                                 file  uploaded for every 15 downloaded.  An
  1548.                                 initial  credit of 2 files are  granted  to
  1549. RBBS-PC Version CPC17-1A                                    October 2, 1988
  1550. Copyright 1988 by D. Thomas Mack                            Page 137 of 232
  1551.  
  1552. Contents of PASSWRDS File           Explanation
  1553.  
  1554.                                 all new/existing users.  However, they  can
  1555.                                 not exit to a "door" or download a file for
  1556.                                 one hour (3,600 seconds).
  1557.  
  1558. ,165,90,,120,,,0,30,,           Users with a security level of 165, have  a
  1559.                                 session  limit  of 90 minutes,  a  120  day
  1560.                                 subscription,  must maintain a ratio  of  1
  1561.                                 file  uploaded for every 30 downloaded.  No
  1562.                                 initial upload credit is granted.
  1563.  
  1564. ,170,120,,365,,,2,10,,          Users  with a security level of 170 have  a
  1565.                                 session  limit of 120 minutes,  a  one-year
  1566.                                 subscription  limitations,  but  can   only
  1567.                                 download 10 files per day.
  1568.  
  1569. ,200,360,,730,,,3,250000,,      Users  with a security level of 200 have  a
  1570.                                 session  limit of 360 minutes,  a  two-year
  1571.                                 subscription, but can only download  250000
  1572.                                 bytes per day.
  1573.  
  1574. If you are using COPY CON to create this file you "MUST" press F6 followed
  1575. by a Ctrl/Z at the end of the last entry prior to pressing carriage return.
  1576.  
  1577. 16.4  How to Implement the Security for Download Files
  1578. ------------------------------------------------------
  1579. CONFIG  allows  the SYSOP to designate the name of the file containing  the
  1580. passwords  and  security levels that can be used to restrict  downloads  of
  1581. specific  files,   volumes,  or  files  names  meeting  certain  "wildcard"
  1582. criteria.   This file contains file names with download restrictions in the
  1583. format:
  1584.  
  1585. <filename>, <security level>,<password>
  1586.  
  1587. Note:   Each line is a record and ends with carriage-return line-feed.  The
  1588. only optional field is the password field for a filename.   By leaving  the
  1589. password  field  empty,  no password is assigned to  a  file.   The  commas
  1590. between  the fields are necessary.  YOU MUST HAVE TWO COMMAS ON  EACH  LINE
  1591. even if you do not have a password associated with the file.
  1592. Some examples would be:
  1593.  
  1594.    COMMAND.COM, 10,DOS
  1595.    PAYROLL.DAT, 99,BANKRUPT
  1596.    CALLGIRL.SEX,,ILLEGAL
  1597.    \FINANCE\STOCKS,100,
  1598.  
  1599. The  file COMMAND.COM could not be downloaded unless a user had a  security
  1600. level equal to or greater than 10 AND could supply the password "DOS".  The
  1601. file PAYROLL.DAT could not be downloaded unless a user had a security level
  1602. equal to or greater than 99 AND could supply the password "BANKRUPT".   Any
  1603. user   could  download  the  file CALLGIRL.SEX if  they  could  supply  the
  1604. password   "ILLEGAL".    Any  user with a security level of 100  or  higher
  1605. could  download   the file STOCKS in the DOS subdirectory  FINANCE  without
  1606. RBBS-PC Version CPC17-1A                                    October 2, 1988
  1607. Copyright 1988 by D. Thomas Mack                            Page 138 of 232
  1608.  
  1609. supplying any password.
  1610.  
  1611. Additionally  "wild-card"  characters and drive designators can be used  to
  1612. protect or restrict certain classes of files (by extension, by drive, etc.)
  1613. from being downloaded.
  1614.  
  1615. Some examples would be:
  1616.  
  1617.    A:*.*,8,
  1618.    E:*.SEC,2,PW1
  1619.    A*.M*,0,GX3
  1620.    XY?X.*,9,3XG
  1621.  
  1622. All files on drive A would require the users to have a security level of  8
  1623. in  order for a user to download them.   Any user who wanted to download  a
  1624. file  whose extension was ".SEC" and was found to be on drive E would  have
  1625. to  not  only  have  a security level of at least 2 but to  also  give  the
  1626. password  PW1.   The third entry above would require a user who  wanted  to
  1627. download  any  file on any drive with a prefix that began with "A"  and  an
  1628. extension that began with "M" to have a security level of at least 0 and to
  1629. enter the password GX3.   Finally,  the last entry above would require  any
  1630. user  who  wanted to download any file on any drive whose four-letter  name
  1631. began with "XY" and whose last letter was "X" with any extension to have  a
  1632. security level of at least 9 and enter the password 3XG.
  1633.  
  1634. The  wildcards  "*"  and  "?" operate just like they do  in  DOS  with  one
  1635. exception.   The  "?"  requires  a character.   In  DOS  the  name  "HAPPY"
  1636. satisfies the file specification "HAPPY?" but it does not in RBBS-PC.
  1637.  
  1638. To  get  exceptions to the general rule,  just put  the  exceptions  first.
  1639. RBBS-PC's  file security search stops with the first applicable entry  that
  1640. it  encounters.   For  example,
  1641.  
  1642. 1.  if you want all files on the B  drive  to require the user to have a
  1643.     security level of at least 3,
  1644. 2.  except that files on  the B drive with the extension ".SEC" would
  1645.     require the user to have a security level of at least 6,  and,
  1646. 3.  regardless of the disk drive that they were on, any file beginning
  1647.     with "MES" with an extension of ".SEC" would require the user to have
  1648.     a security level of at least 12
  1649.  
  1650. you would enter the following into the file security file
  1651.  
  1652.    MES*.SEC,12,
  1653.    B:*.SEC,6,
  1654.    B:*.*,3
  1655.  
  1656. Special Note: RBBS-PC  is  hard  coded so that there are  some  files  that
  1657.               nobody   can   download -- not even the  SYSOP.    These  are
  1658.               RBBS-PC.DEF,   users,  messages,  callers,  group   password,
  1659.               comments,   the file security, and backup  files.   Similarly
  1660.               the   batch  files  that control RBBS-PC and let  the  caller
  1661.               exit  to DOS 2 can not be downloaded.   The default  security
  1662.               file  provided with RBBS-PC is empty.
  1663. RBBS-PC Version CPC17-1A                                    October 2, 1988
  1664. Copyright 1988 by D. Thomas Mack                            Page 139 of 232
  1665.  
  1666. 16.5  How to Implement the Security for RBBS-PC Commands
  1667. --------------------------------------------------------
  1668. RBBS-PC allows each command to be assigned it's own security level.  A user
  1669. who  wishes  to  invoke  an RBBS-PC command must have  at  least  the  same
  1670. security level as the command.   Let's assume that a SYSOP wants to set  up
  1671. the following classes of users:
  1672.  
  1673.   Classification of Users                        Security Level
  1674. "Locked Out" Users                                     0
  1675. New Users (first time)                                 1
  1676. Normal Users                                           2
  1677. Users who can "view" a Conference                      3
  1678. Users who can enter Messages                           4
  1679. Users who can download files                           5
  1680. Users who can upload files                             6
  1681. Users who can Join a Conference                        7
  1682. Users who can do some SYSOP commands (Jr. SYSOP's)     8
  1683. Users who can enter a "door"                           9
  1684. Users who can enter all SYSOP commands  (Co-SYSOP's)  10
  1685.  
  1686. The  following  table  illustrates  one method of  assigning  each  RBBS-PC
  1687. command it's own security level:
  1688.                                           Security Level
  1689.          Subsystem/Command              Assigned to Command
  1690.  
  1691.           Messages Subsystem
  1692.              A>nswer questionnaire............... 4
  1693.              B>ulletins.......................... 1
  1694.              C>omments........................... 1
  1695.              D>oor subsystem..................... 9
  1696.              E>enter message..................... 4
  1697.              F>iles system....................... 1
  1698.              I>nitial welcome.................... 1
  1699.              J>oin a conference.................. 7
  1700.              K>ill messages...................... 4
  1701.              O>perator page...................... 1
  1702.              P>ersonal mail...................... 2
  1703.              R>ead messages...................... 2
  1704.              S>can messages...................... 1
  1705.              T>opic of messages.................. 1
  1706.              U>tilities (more)................... 1
  1707.              V>iew conference mail............... 3
  1708.              W>ho's on other nodes................3
  1709.              @>Library Sub-System.................1
  1710.  
  1711.           Files Subsystem
  1712.              D>ownload........................... 5
  1713.              G>oodbye............................ 0
  1714.              L>ist file directories.............. 4
  1715.              N>ew files.......................... 5
  1716.              P>ersonal downloads................. 5
  1717.              S>earch directories for string ..... 1
  1718.              U>pload a file...................... 1
  1719.              V>erbose listing of ARC file........ 1
  1720. RBBS-PC Version CPC17-1A                                    October 2, 1988
  1721. Copyright 1988 by D. Thomas Mack                            Page 140 of 232
  1722.  
  1723.           Utilities Subsystem
  1724.              B>aud rate.......................... 1
  1725.              C>lock (time of day)................ 1
  1726.              E>cho selection..................... 1
  1727.              F>ile transfer protocol............. 1
  1728.              G>raphics........................... 1
  1729.              L>ength of page..................... 1
  1730.              M>essage Margin..................... 1
  1731.              P>assword change.................... 1
  1732.              R>eview preferences................. 0
  1733.              S>tatistics of system............... 1
  1734.              T>oggle (line feeds, etc.).......... 1
  1735.              U>serlog............................ 2
  1736.  
  1737.           Library Subsystem
  1738.              A>rchive a Library disk..............5
  1739.              C>hange a Library disk...............5
  1740.              D>ownload........................... 5
  1741.              G>oodbye............................ 0
  1742.              L>ist file directories.............. 4
  1743.              S>earch directories for string ..... 1
  1744.              V>erbose listing of ARC file........ 1
  1745.  
  1746.           GLOBAL commands
  1747.              ?>What can be done.................. 1
  1748.              H>elp with a command................ 1
  1749.              Q>uit to another subsystem or exit.. 1
  1750.              X>Expert/novice toggle.............. 1
  1751.  
  1752.           SYSOP Subsystem
  1753.              1>List comments..................... 8
  1754.              2>List callers log..................10
  1755.              3>Recover a Message................. 8
  1756.              4>Erase comments.................... 9
  1757.              5>USERS maintenance.................10
  1758.              6>Toggle page bell.................. 8
  1759.              7>Exit to DOS 2.x or above.......... 9
  1760.  
  1761. 16.6  Beware of the "Trojan Horse!"
  1762. -----------------------------------
  1763. Despite RBBS-PC's security always remember that you should always assume:
  1764.  
  1765.        "EVERY FILE ON THE PC RUNNING RBBS-PC CAN
  1766.        BE DOWNLOADED, MODIFIED, AND/OR DESTROYED!"
  1767.  
  1768. RBBS-PC's security system appears to be so fool-proof that some individuals
  1769. have  resorted  to  uploading programs that appear to  do  one  thing,  but
  1770. actually  do something else.   These "trojan horse" programs search all the
  1771. disks that are connected to the PC that the program is running on for  such
  1772. RBBS-PC files as RBBS-PC.DEF or USERS.  The program then copies these files
  1773. to  an innocuously named file that can be downloaded later when the  person
  1774. who uploaded it logs onto the system again.  Since RBBS-PC.DEF contains the
  1775. pseudonym  that the SYSOP can use to logon on remotely as the  SYSOP,  once
  1776. the  user downloads a copy of it the user can then log on as the SYSOP  and
  1777. RBBS-PC Version CPC17-1A                                    October 2, 1988
  1778. Copyright 1988 by D. Thomas Mack                            Page 141 of 232
  1779.  
  1780. do  just  about anything including exiting to DOS and  formatting  all  the
  1781. disks on the system.  Similarly, the USERS file contains passwords and  the
  1782. security levels of everyone on your RBBS-PC -- some of whom may have  SYSOP
  1783. privileges.
  1784.  
  1785. You  can protect yourself against anyone logging on as you, the  SYSOP,  by
  1786. not  allowing  anyone  to logon as the SYSOP remotely.   To  do  this  read
  1787. section   11  regarding parameter 121.  You can  protect  yourself  against
  1788. unauthorized  access of the USERS file by simply not allowing any  user  to
  1789. have SYSOP privileges.
  1790.  
  1791. Of course there is the "trojan horse" program that doesn't even bother with
  1792. the above, but simply destroys all the disk files on all the disks that are
  1793. connected to the PC that is running the program.   See the rest of  section
  1794. 22 to see how you can protect yourself against such programs.
  1795.  
  1796. 17.  SYSOP FUNCTIONS
  1797. --------------------
  1798. The SYSOP functions are not available to the general user.  They consist of
  1799. numeric  commands 1-7 for SYSOPs that sign-on remotely as well as  some  of
  1800. the  keys on the keyboard attached to the PC that is running  RBBS-PC  when
  1801. the SYSOP signs on "locally" by pressing the "Esc" key.  When on "locally",
  1802. the  SYSOP  should not use some of the user functions that  depend  on  the
  1803. person invoking them being remote (i.e. file transfers, changing baud  rate
  1804. to  450 baud, etc.).  To  enter  the  SYSOP mode locally press the ESC  key
  1805. on the PC that is running RBBS-PC itself and enter  the  special  pseudonym
  1806. you  assigned yourself as the first  and last name  in order to log  on  as
  1807. the primary SYSOP from  a  remote  terminal.
  1808.  
  1809. 17.1 SYSOP Commands Within RBBS-PC
  1810. ----------------------------------
  1811. The following operations can then be performed by entering a number only at
  1812. the command prompt:
  1813.  
  1814. 1  - Type COMMENTS file.   The contents of the COMMENTS file is  displayed.
  1815. This  file can also be inspected using a TYPE command from DOS.   It  is  a
  1816. ASCII sequential text file.
  1817.  
  1818. 2 - Type CALLERS file.   A log is maintained of all persons who have called
  1819. the  system.   This function will list the file showing the users name  and
  1820. the  date  and  time  signed  on as well as the names  of  the  files  they
  1821. upload/downloads  along with any security violation or errors  encountered.
  1822. This  is a random access file of 64-byte records.
  1823.  
  1824. 3 - Resurrect a message.  This function will return a message that has been
  1825. killed   to  an  active state.    If message file has been  "packed",   the
  1826. killed  messages are no longer recoverable.   The function will ask for the
  1827. message  number of the message to be recovered.
  1828.  
  1829. 4 - Erase the COMMENTS file.  This function will erase the comments file by
  1830. killing the file.   Since the file is opened "APPEND," a new comments  file
  1831. will be created the next time a user leaves a comment.
  1832. RBBS-PC Version CPC17-1A                                    October 2, 1988
  1833. Copyright 1988 by D. Thomas Mack                            Page 142 of 232
  1834.  
  1835. 5 - USERS file maintenance.   The users file contains entries for each user
  1836. registered  with the system.   This function permits the SYSOP to
  1837. A)dd -- add a user to the USERS file.
  1838. L)st -- list the USERS file.
  1839. P)rt -- print the USERS file on the printer.
  1840. M)od -- modify a record in the USERS file.
  1841. S)can - scan each record in the USERS file for a particular string.
  1842.  
  1843. In  <M>odify mode,  limiting editing of the users record in the USERS  file
  1844. can be done.  The following subfunctions are available:
  1845.  
  1846.     D - Delete a user in the USERS file.
  1847.     F - Find a user in the USERS file.
  1848.     M - Return to the option 5 function prompt.
  1849.     N - Give the user a new password.
  1850.     P - Toggle the printer flag to print entries on the printer.
  1851.     Q - Quit and return to the main message prompt.
  1852.     R - Reset the users graphic mode.
  1853.     S - Set the security level of the user.  This can be used to lockout or
  1854.         grant  special privileges to the user.
  1855.     # - locate any record number within the USERS file.
  1856.  
  1857. In  <M>odify  mode  a record will be displayed followed  by  a  subfunction
  1858. prompt  for action.   To get to a specific record the record number can  be
  1859. entered  at the prompt and if valid that record will be displayed.   If the
  1860. record number is invalid or an empty c/r is entered then the next record in
  1861. the file will be displayed.
  1862.  
  1863. 6  - Toggles  the operator page bell on/off.   This overrides  the  "office
  1864. hours" specified in the RBBS-PC.DEF file.
  1865.  
  1866. 7  -  SYSOP  drop to DOS as a remote user.  If  the  SYSOP  has  logged  on
  1867. remotely  and  is  running  RBBS-PC under  DOS   2.0   or   greater,   this
  1868. function will dynamically setup a batch file to assign  the  SYSOP terminal
  1869. as the main console.  It then returns to DOS and if
  1870.  
  1871.        a.  RBBS-PC was invoked via a batch file, and if
  1872.  
  1873.        b.  that  batch  file  checks  for  the  batch  file  which  RBBS-PC
  1874.            dynamically builds for SYSOP function 7, and if
  1875.  
  1876.        c.  the batch file that invokes RBBS-PC executes the batch file that
  1877.            RBBS-PC dynamically builds for SYSOP function 7,
  1878.  
  1879. the  SYSOP  will  then see the DOS prompt at the remote  terminal  and  can
  1880. execute  whatever DOS commands or programs the CTTY command  support.   DOS
  1881. will look for COMMAND.COM to be present on the disk drive you specified  in
  1882. parameter  105.   SYSOP  function 7, unlike "doors," loads  in  a  copy  of
  1883. COMMAND.COM  to run under the copy that was running RBBS-PC.  Also be  sure
  1884. to  read  Appendix  W and make sure that  you  THOROUGHLY  understands  the
  1885. limitations that DOS places on you when this option is invoked.
  1886.  
  1887. Two   areas   of  caution are advised when using SYSOP function   7   under
  1888. DOS   2.0  or above.   First,  each  SYSOP  should  test what can  be  done
  1889. RBBS-PC Version CPC17-1A                                    October 2, 1988
  1890. Copyright 1988 by D. Thomas Mack                            Page 143 of 232
  1891.  
  1892. remotely.   Software  that reads and writes directly to the video BIOS  and
  1893. does   other  things  that  bypass  the  standard  input and output of  DOS
  1894. simply   won't   function  correctly.   Second,  you should be  aware  that
  1895. you  are  in  DOS  and  can return to RBBS-PC  only  by  issuing  the  EXIT
  1896. command.    This will return to the  batch file that was built  dynamically
  1897. by RBBS-PC.   This file  will  then  continue executing  and is designed to
  1898. reassign  the keyboard  as  the  console and then  re-invoke RBBS-PC.    If
  1899. you  get disconnected while in DOS,  your  system will be locked up.    The
  1900. console will be assigned to your  communication  port  and your Hayes modem
  1901. will  have dropped the  line   and  will have been set not to  auto-answer.
  1902. The only way to re-boot the  system  is a manual power off/on sequence.
  1903.  
  1904. 17.2 SYSOP Use of Function Keys and Numeric Pad
  1905. -----------------------------------------------
  1906. The   following  function  keys  (ten keys on the left  side  of a standard
  1907. IBM  keyboard)   are  designed  to  give the SYSOP special  local  controls
  1908. that   can   be  actuated  without entering the SYSOP mode (using  the  ESC
  1909. entry key).   The current status of the function keys F3, F4, F6 and F7 are
  1910. displayed on line 25.
  1911.  
  1912. F1 - Return to DOS.   This will terminate a session if a caller is on-line.
  1913. In  a MultiLink environment when running RBBS-PC out of .BAT file that  re-
  1914. invokes  itself it is difficult for a SYSOP to get out of RBBS-PC and  exit
  1915. to  DOS locally using F1.   To help,  RBBS-PC now creates a special file on
  1916. the same location as the CALLERS file called RBBSxF1.DEF (where "x" is  the
  1917. node  ID -- RBBS6F1.DEF for node six).   The .BAT file that would otherwise
  1918. just re-invoke itself,  can now check for the existence of this file and if
  1919. it finds it simply terminate itself.
  1920.  
  1921. F2 - SHELL to DOS.  RBBS-PC remains resident but suspended in memory, the
  1922. user (if any) remains on-line and the local SYSOP is in DOS until the  EXIT
  1923. command is issued (returning to within RBBS-PC just prior to having pressed
  1924. the F2 key).  The users session is not terminated -- only suspended.
  1925.  
  1926. F3 - Printer toggle on/off.  This changes the printer on-line status.  When
  1927. on-line    the    printer    will   print  each caller's   name    and  the
  1928. file    names   uploaded/downloaded.    It   will   also  print  all  error
  1929. messages   except  the  ERROR 68 used to check that a  file  exists.   This
  1930. function should match  the  condition  of  the printer.   If the printer is
  1931. going  to be  left  off,   the  PRINTER toggle should be set to off.   When
  1932. the printer toggle is on, "LPT" will be displayed in positions 8-11 of line
  1933. 25.
  1934.  
  1935. F4   - Operator page toggle.    This changes the status of "operator annoy"
  1936. (i.e.  allows  the SYSOP to be pageable) and  records  the  change  in  the
  1937. "node" record associated with the copy of RBBS-PC associated with  function
  1938. key 4.   This is set  by  the  CONFIG program parameter 7 which establishes
  1939. the  SYSOP's  office hours.  This can be used to override  and  extend  the
  1940. "office  hours" set up by CONFIG.BAS.  When the "operator annoy" toggle  is
  1941. on, "ANY" will be displayed in positions 5-7 of line 25.
  1942.  
  1943. F5 - Forces RBBS-PC to tell the modem to answer the phone.
  1944. RBBS-PC Version CPC17-1A                                    October 2, 1988
  1945. Copyright 1988 by D. Thomas Mack                            Page 144 of 232
  1946.  
  1947. F6  - SYSOP available.   This changes the status of operator available  and
  1948. records   the change in the "node" record associated with the copy of RBBS-
  1949. PC associated with  function key 6.   This is useful if during your "office
  1950. hours"  you  temporarily  don't  wish to  be  disturbed.   When  the  SYSOP
  1951. available  toggle is on,  "AVL" will be displayed in positions 1-3 of  line
  1952. 25.
  1953.  
  1954. F7  - SYSOP gets control of the system after current user logs  off.   When
  1955. the "SYSOP next" toggle is on,  "SYS" will be displayed in positions  13-15
  1956. of line 25.
  1957.  
  1958. F8  - Allows the SYSOP to grant an on-line user temporary SYSOP privileges.
  1959. This is a toggle on/off switch.
  1960.  
  1961. F9 - SNOOP toggle.  This changes the SNOOP from the default value the first
  1962. time  it  is pressed and toggles it on/off thereafter.  "SNOOP off"  clears
  1963. the  screen  and  turns the cursor off.   It also keeps the download  beeps
  1964. from  sounding.    The  SNOOP should be left off for normal use to keep the
  1965. system  startup screen from "burning into" the monitor.    If the SNOOP  is
  1966. left  on,  the  monitor should be physically turned off except when you are
  1967. observing   RBBS-PC  in action.  Leaving the monitor off  will  not  affect
  1968. performance of RBBS-PC.
  1969.  
  1970. F10  - This is the forced chat switch.   It announces your forced chat  and
  1971. who you are before turning the keyboard over to you and the  caller.    The
  1972. ESC  key is used to exit Forced chat mode or to answer an "O>perator  page"
  1973. request.  The F10 key will not function until a user logging on has reached
  1974. the Main Menu.
  1975.  
  1976. END  - Logs off and locks out the current user that is on and  informs  the
  1977. user that their presence is unacceptable.
  1978.  
  1979. PgUp  - Displays  all the information on a current user.   This display  is
  1980. kept in the video page 1 (of the 0-7 pages).   The user activity is  always
  1981. written to page 0 when SNOOP is active.  The user sees no interruption when
  1982. this occurs as his activity continues unaffected.  If you have a monochrome
  1983. display there is no video pages 1 through 7 only page 0.  This will display
  1984. on the monochrome screen the user information.
  1985.  
  1986. PgDn  - Return  to displaying video page 0 (i.e.  the page that  the  users
  1987. activity is written to when SNOOP is on).
  1988.  
  1989. LEFT  ARROW   -- Subtracts one minute to the user's current  session  time.
  1990. Ctrl/Left Arrow subtracts five minutes to the user's current session time.
  1991.  
  1992. RIGHT  ARROW  --  Adds one minute from the  user's  current  session  time.
  1993. Ctrl/Right Arrow adds five minutes to the user's current session time.
  1994.  
  1995. UP  ARROW  --  The keyboard "up arrow" key (i.e.  one  that  generates  the
  1996. character with ASCII value 24 and which is the "8" key on the standard  IBM
  1997. keyboard's  numeric  pad that is at the right of the keyboard)  allows  the
  1998. local  SYSOP to increment an on-line users security level by one each  time
  1999. that  it  is  pressed.   Control-up-arrow will  increase  the  security  in
  2000. increments of 5.
  2001. RBBS-PC Version CPC17-1A                                    October 2, 1988
  2002. Copyright 1988 by D. Thomas Mack                            Page 145 of 232
  2003.  
  2004.  
  2005. DOWN  ARROW -- The keyboard "down arrow" key (i.e.  one that generates  the
  2006. character  with ASCII value 25 and which is the "2" key on the standard IBM
  2007. keyboard's  numeric  pad that is at the right of the keyboard)  allows  the
  2008. local  SYSOP to decrement an on-line users security level by one each  time
  2009. that  it  is  pressed.  Control-down-arrow will decrease  the  security  in
  2010. increments of 5.
  2011.  
  2012. Some  keyboards  do  not  recognize the  Control-Up  or  Control-Down.   To
  2013. accommodate this, the Control-PgUP and Control-PgDn can be used instead.
  2014.  
  2015. The SYSOP can also enter commands on the command prompt line while a caller
  2016. is  on-line.   The command entered will cause the system to respond just as
  2017. it would if the caller had entered the command.   This should be used  with
  2018. caution because it could confuse a new system user -- users are often timid
  2019. enough  without  knowing that big brother is actually watching  them!   Let
  2020. callers  page you and then tell them that you can assist with  commands  if
  2021. the get  into trouble.
  2022.  
  2023. 18.   MESSAGE AREAS WITHIN RBBS-PC
  2024. ----------------------------------
  2025. RBBS-PC is intended to be an open system.  As such it can have an unlimited
  2026. number  of message areas and messages.  At the very minimum, RBBS-PC has  a
  2027. single
  2028.      1.)  message area, a file named MESSAGES,
  2029.      2.)  user file, a file named USERS, and
  2030.      3.)  definition file, a file named RBBS-PC.DEF
  2031.  
  2032. In  addition  to this, additional messages areas can be created  as  either
  2033. "conferences"  (i.e. areas that use the same RBBS-PC.DEF file as  the  main
  2034. RBBS-PC message area) or "sub-boards" (i.e. areas that have their own  .DEF
  2035. file).
  2036.  
  2037. 18.1 The Differences Between "Conferences" and "Sub-boards"
  2038. -----------------------------------------------------------
  2039. A "conference" or "sub-board" can be:
  2040.  
  2041.      1.) "public" -- any caller can join.
  2042.  
  2043.      2.) "public with a separate user file" -- any caller can join and
  2044.                     RBBS-PC remembers the last message read by each caller.
  2045.  
  2046.      3.) "semi-public" -- only callers with specific security levels equal
  2047.                     to or greater than that specified for the conference
  2048.                     can join.
  2049.  
  2050.      4.) "semi-public with a separate user file" -- only callers with
  2051.                     specific security levels equal to or greater than that
  2052.                     specified for the conference can join and RBBS-PC
  2053.                     remembers the last message read by each caller.
  2054.  
  2055.      5.) "private with a separate user file" -- only callers who have
  2056.                     been pre-registered in the separate user file for
  2057.                     the conference can join and RBBS-PC remembers the last
  2058. RBBS-PC Version CPC17-1A                                    October 2, 1988
  2059. Copyright 1988 by D. Thomas Mack                            Page 146 of 232
  2060.  
  2061.                     message read by each caller.
  2062.  
  2063. A "sub-board" is just a conference that also has a configuration definition
  2064. file (.DEF).   Sub-boards can be public, private, or semi-private.   Access
  2065. to a sub-board is controlled by the configuration parameter 123 which  sets
  2066. the  minimum  security level required to enter the  "sub-board."   A  "sub-
  2067. board"  configuration  file  has  the  same  format  as  the  RBBS-PC  main
  2068. configuration  file,  and  is created and edited  using  CONFIG.EXE.   This
  2069. allows  a  "sub-board"  to  have its own  unique  welcome  file,  commands,
  2070. security  levels, menus, help, bulletins, directories, and up and  download
  2071. areas.   "Sub-boards" can share as much or as little as desired with  other
  2072. conferences or other "sub-boards" within the same RBBS-PC system.  The only
  2073. things  a "sub-board" cannot change are the primary MESSAGES file  and  the
  2074. communications parameters used by the RBBS-PC it is running under.
  2075.  
  2076. To  the  caller, a "sub-board" appears just like  another  bulletin  board,
  2077. accessed from a bulletin board rather than through a telephone number.
  2078.  
  2079. Public  sub-boards,  just  like  public boards,  are  those  whose  minimum
  2080. security to join is not higher than the default security for new users.
  2081.  
  2082. "Sub-boards"  basically  allow  a single telephone  number  to  offer  very
  2083. different types and levels of services.  Independent "sub-boards" run under
  2084. the  same  RBBS-PC  service radically different  types  of  terminals/PC's.
  2085. Within  the same RBBS-PC, one "sub-board" may have 80 column menus for  IBM
  2086. and  compatible PC callers, another may have 40 column menus for Atari  and
  2087. Commodore  PC users, and still another may have 20 column menus  for  those
  2088. using  telecommunications  devices for the deaf (TDD's).  No longer  is  it
  2089. necessary  to  provide three independent telephone numbers for  three  such
  2090. different services.  All callers can dial the same number and simply switch
  2091. over to the appropriate board.  Extra lines can be added to a roll-over and
  2092. service all the boards.  "Sub-boards" make it much easier and feasible  for
  2093. a SYSOP to market bulletin board services by allowing hardware to resources
  2094. to be pooled under one software "umbrella" such as RBBS-PC and yet  service
  2095. a  very  diverse set of requirements -- much the same way  that  Compuserve
  2096. does.   One of the best hardware configurations for running  a  multi-board
  2097. service  like  this  is PC-Slaves, because  adding  additional  boards  are
  2098. extremely easy, with virtually no system degradation.
  2099.  
  2100. "Sub-boards"  greatly  benefit "umbrella" organizations.   For  example,  a
  2101. computer  club that covers IBM computers, Apple, Atari, and Commodore.   No
  2102. longer does software intended for one type of computer have to get mixed in
  2103. with  listings  for  another computer.  Each computer  can  have  not  only
  2104. separate messages, but bulletins and directories as well.
  2105.  
  2106. "Sub-boards"  make it easy to have different "levels" of service  based  on
  2107. security level.  Many SYSOPs run both a "free" and a "subscription"  board.
  2108. The  most typical arrangement for this is to have the free board be on  the
  2109. bottom  of a telephone roll-over and the pay board be on the top,  and  for
  2110. the top board to require a higher security level.  Non-subscribers who call
  2111. the pay board number get "kicked" off the board.  "Sub-boards" on the  same
  2112. telephone line would give both paying and non-paying callers equal  access,
  2113. if  desired.   Another example is that callers with enhanced  security  can
  2114. join  a  sub-board  to get access to even more  downloads.   Or,  executive
  2115. RBBS-PC Version CPC17-1A                                    October 2, 1988
  2116. Copyright 1988 by D. Thomas Mack                            Page 147 of 232
  2117.  
  2118. officers for an organization can have access to a "sub-board" that has  not
  2119. only special messages but special bulletins and files.
  2120.  
  2121. The naming conventions of the files associated with a "conference" or "sub-
  2122. board", for example called CLONES, would be:
  2123.  
  2124. CLONESM.DEF    --- the message file
  2125. CLONESU.DEF    --- the user file
  2126. CLONESW.DEF    --- the "welcome" file (for conferences only)
  2127. CLONESC.DEF    --- the configuration file (for "sub-boards" only)
  2128.  
  2129. Using the configuration .DEF file associated with a "sub-board" allows each
  2130. SYSOP  to  make  the "sub-boards" as unique or  similar  as  desired.   Two
  2131. security levels are very important.  The minimum security to log on to  the
  2132. board  determines who can join the "sub-board".  And the  default  security
  2133. level is what newly added callers are assigned.
  2134.  
  2135. A  "sub-board", like any conference (public, semi-private, or  private)  is
  2136. closed  to  all  who have insufficient security.   To  make  a  "sub-board"
  2137. completely  private,  simply  set the minimum  CONFIG  parameter  123  (the
  2138. minimum  security  level a new user needs to logon) to be higher  than  any
  2139. normal  caller would have.  The only way for callers to be able to  join  a
  2140. completely private "sub-board", like a private conference is for the  SYSOP
  2141. to have added them previously to the users file associated with that  "sub-
  2142. board".
  2143.  
  2144. The  security level a caller gets when auto-added is the  default  security
  2145. level for the "sub-board" and not the current security level of the caller.
  2146. This is to prevent special privileges that a caller has in one  "sub-board"
  2147. from  automatically  propagating into other "sub-boards".  For  example,  a
  2148. caller with SYSOP privileges in one "sub-board" who joins another does  not
  2149. become receive SYSOP privileges in the other.
  2150.  
  2151. The security level used to determine what "sub-boards" a caller can join is
  2152. not  the current security level but the original security level the  caller
  2153. had on the main board.
  2154.  
  2155. RBBS-PC detects if the bulletins in the "sub-board" are the same  as in the
  2156. main  RBBS-PC  system and does not re-display them when  a  "sub-board"  is
  2157. joined.
  2158.  
  2159. "Sub-boards",  public  conferences, semi-private conferences,  and  private
  2160. conferences can all co-exist within the same RBBS-PC system.  Sub-boards in
  2161. turn  can  have sub-boards in them, as well as  public,  semi-private,  and
  2162. private conferences.
  2163.  
  2164. The  primary  disadvantage  of  "conferences"  or  "sub-boards"  that  have
  2165. separate user files associated with them is the additional disk space  that
  2166. is required for the users file.
  2167.  
  2168. RBBS-PC's  CONFIG  parameter  290 allows the SYSOP to let a user  on  as  a
  2169. "guest"  if  there  is no more room left in the users file  for  the  "sub-
  2170. board", semi-private conference, or private conference.  Not having a  user
  2171. record  defeats  one  of  the main  mechanisms  for  remembering  a  user's
  2172. RBBS-PC Version CPC17-1A                                    October 2, 1988
  2173. Copyright 1988 by D. Thomas Mack                            Page 148 of 232
  2174.  
  2175. preferences,  of course, but the SYSOP can start with a smaller users  file
  2176. and expand later without the risk of denying callers access.
  2177.  
  2178. Obviously, "sub-boards" take more time to set up and maintain.  While it is
  2179. nice  to be able to have parts of RBBS-PC vary radically from one  another,
  2180. every  one  that does vary is another item to create and  maintain.   "Sub-
  2181. boards"  can  multiply  the  work  necessary,  for  example,  to   maintain
  2182. bulletins.   There are more users and message files to  oversee.   However,
  2183. Kim  Wells MU-EDIT is an invaluable tool for managing multiple message  and
  2184. user  files.  Give Kim's RBBS-PC call at (703) 350-1299 and get a  copy  of
  2185. MU-EDIT.
  2186.  
  2187. 18.2 How to Make a "Conference" or "Sub-board" Successful
  2188. ---------------------------------------------------------
  2189. To make a "conference" or "sub-board" successful several guidelines  should
  2190. be followed rather rigorously:
  2191.  
  2192. 1.   Establish  a "conference" or "sub-board" chairman (i.e.  a  SYSOP)  to
  2193. manage  the  conference.  The SYSOP's job is to add new users,  delete  old
  2194. ones,  make  sure that the subject and/or the agenda of the  conference  is
  2195. adhered  to  by  killing messages that are  inappropriate.   This  is  best
  2196. accomplished by having a separate user file for each "conference" or  "sub-
  2197. board"  in which the caller only has SYSOP privileges when in the  specific
  2198. "conference" or "sub-board."
  2199.  
  2200. 2.  Establish an "agenda" or list of subject areas for the "conference"  or
  2201. "sub-board."  One of these should be about new subject areas.  These  areas
  2202. should  be  VERY narrow in scope.  The essence of any  good  conference  is
  2203. keeping  it focused.  Everyone has been in at least one  meeting/conference
  2204. that was a waste of time because whoever was running the meeting/conference
  2205. did not keep the dialogue centered on the subject or agenda.
  2206.  
  2207. 3.  If a continuity of dialogue is to be achieved, it is advisable to  keep
  2208. the  conference  "focused" -- either by keeping the  number  of  conference
  2209. members limited to thirty persons or less or by keeping the subject  matter
  2210. very  narrow  (i.e.  the  IBM PC's 30MB  disk  size  limitation).   Another
  2211. interesting thing about "private" conferences and sub-boards as implemented
  2212. within RBBS-PC is that they are not "public" and, therefore, are even  more
  2213. protected by the first, fourth, and fifth amendments.
  2214.  
  2215. 18.3 How to Set Up a "Conference" or "Sub-board"
  2216. ------------------------------------------------
  2217. The SYSOP sets up a "conference" using the CONFIG utility parameter 167  to
  2218. pre-format  up to two files -- one for the messages to be  associated  with
  2219. the conference and one for the users to be associated with a conference (if
  2220. it is a "private" conference).  The file name for a "conference" can be any
  2221. seven characters that are valid for a file name.  The eighth character must
  2222. be  a "M" (for the messages file associated the conference) or a  "U"  (for
  2223. the  users file associated with the conference).  The SYSOP can then  enter
  2224. the  conference  member's names in the conference USERS file by  using  the
  2225. SYSOP  function 5.  The SYSOP can "join" any conference and need not be  in
  2226. any particular conference's USERS file.
  2227. RBBS-PC Version CPC17-1A                                    October 2, 1988
  2228. Copyright 1988 by D. Thomas Mack                            Page 149 of 232
  2229.  
  2230. Like  "conferences", RBBS-PC supports an unlimited number of  "sub-boards".
  2231. "Sub-boards"  are  equally easy to create.  If CLONES where the name  of  a
  2232. public  conference (the CLONES message file CLONESM.DEF exists),  all  that
  2233. would  have to be done to make CLONES a "sub-board" would be to run  CONFIG
  2234. to
  2235.      1.) create a separate user's file, CLONESU.DEF, for this formerly
  2236.          public conference (if didn't already have a users file),
  2237.      2.) create a  "sub-board"  configuration file for the CLONES
  2238.          "sub-board" (a file whose name would be ATARIC.DEF).
  2239.  
  2240. The easiest way to make a "sub-board" configuration file is to use the  DOS
  2241. copy command, starting with another configuration file as a model (e.g. the
  2242. one  for  the main board).  To continue with the CLONES example  you  would
  2243. issue the DOS command:
  2244.  
  2245.            COPY RBBS-PC.DEF  CLONESC.DEF
  2246.  
  2247. Then invoke CONFIG.EXE to edit that file, using the form
  2248.  
  2249.                    CONFIG CLONESC.DEF
  2250.  
  2251. WARNING!!   When you create a .DEF file by copying another one as a  model,
  2252. be sure to run CONFIG against this new file and change the message and user
  2253. file names!  Otherwise your sub-board will share the user file with another
  2254. message  base.   Here change the message file name to CLONESM.DEF  and  the
  2255. user  file name to CLONESU.DEF.  The users file name can be anything for  a
  2256. "sub-board"  but  the  extension  .DEF is a  good  idea  because  RBBS-PC's
  2257. security  system will not let any file with that extension  be  downloaded.
  2258. Remember, you do not want to allow callers to download any users file!  You
  2259. get  an  extra  layer  of protection if you  put  the  message,  user,  and
  2260. configuration files in an area not available for downloading.
  2261.  
  2262. 18.4 How to Establish a "Conference" or "Sub-board" SYSOP
  2263. ---------------------------------------------------------
  2264. To set up a conference or sub-board chairman,  the SYSOP need only
  2265.  
  2266.     1.  "Join" the conference or sub-board,
  2267.     2.  Use SYSOP function 5 to enter the name of the user who is to
  2268.         be the conference chairperson into the conference's USERS file.
  2269.     3.  Set that users security level in the conference's USERS file
  2270.         to a security level that can issue the SYSOP function 5.  This
  2271.         will allow the conference chairman to add users.
  2272.  
  2273. Remember  that  users can join a "private" conference or sub-board only  if
  2274. already  registered in the USERS file associated with it.   Any  registered
  2275. user can join a "public" conference or sub-board.  When someone issues  the
  2276. J>oin  command to join a conference or sub-board, their  standard  security
  2277. level is temporarily superseded by the security level associated with their
  2278. user  name  within that conference's or sub-board's USERS file if it  is  a
  2279. "private" conference.
  2280.  
  2281. For  example,  a normal user might be given the security  required  to  add
  2282. users to a particular conference or sub-board USERS file since they are the
  2283. SYSOP of that message area.  When a user joins the conference or  sub-board
  2284. RBBS-PC Version CPC17-1A                                    October 2, 1988
  2285. Copyright 1988 by D. Thomas Mack                            Page 150 of 232
  2286.  
  2287. of which they are chairman, their normal security is bumped up so that they
  2288. can add users to the USERS file of that particular message area.  When  the
  2289. same  user  exits that message area, their security level  is  returned  to
  2290. normal.   If they should subsequently join another message area where  they
  2291. are not chairman, they would be unable to add users to that message  area's
  2292. USERS  file.  Other than a message area's SYSOP, none of the  message  area
  2293. members should be given any higher security than they otherwise enjoy as  a
  2294. regular RBBS-PC user.
  2295.  
  2296.  
  2297. 19. AUTOMATICALLY NOTIFYING CALLERS THAT THEY HAVE MAIL WAITING
  2298. ---------------------------------------------------------------
  2299. RBBS-PC has the ability to notify callers about mail waiting for them  when
  2300. they log on.  Callers can be notified for any pair of user/message files
  2301.  
  2302.      (a) how many new messages were left, and
  2303.      (b) whether any new messages are to them personally.
  2304.  
  2305. RBBS-PC  can be configured such that the messages individually reported  by
  2306. number to the caller when the caller logs on are:
  2307.  
  2308.      all messages (i.e. both old and new, or
  2309.      just new messages since the caller last logged on, or
  2310.      no messages
  2311.  
  2312. at  all  via CONFIG parameter 19.  Of course, RBBS-PC allows the  SYSOP  to
  2313. determine if callers are reminded of the mail they have left.
  2314.  
  2315. In  a file specified in CONFIG parameter 93 (the default is  CONFMAIL.DEF),
  2316. the  SYSOP  can list the message/user file combinations to check  for  mail
  2317. waiting in the format
  2318.  
  2319.            <user file>,<message file>
  2320.  
  2321. where  these  are related conference file names.   If it  is  assumed  that
  2322. RBBS-PC is running in a DOS subdirectory off of the main root directory  of
  2323. the  "C:" drive and that there are two conferences, RBBS-PC and BETA,  then
  2324. an example of the contents of the CONFMAIL.DEF file is:
  2325.  
  2326.             C:\RBBS\BETAU.DEF,C:\RBBS\BETAM.DEF
  2327.             C:\RBBS\RBBS-PCU.DEF,C:\RBBS\RBBS-PCM.DEF
  2328.  
  2329. The names are processed exactly as typed, so inclusion of the drive/path is
  2330. necessary.    The SYSOP controls what conferences get checked for  mail  by
  2331. listing  these  file pairs.   Conferences not listed will not  be  checked.
  2332. Callers  will get a report only for conferences that they are a member  of.
  2333. Two items of information are reported:
  2334.  
  2335.      number of new messages since last in the conference, and
  2336.      whether any new messages are address to the caller.
  2337.  
  2338. The  name used in RBBS-PC for the main message base is taken from the  file
  2339. name  for the message base.  As with conferences - if the prefix of if  the
  2340. user file ends with "M", the name will be the composed of all but the  last
  2341. RBBS-PC Version CPC17-1A                                    October 2, 1988
  2342. Copyright 1988 by D. Thomas Mack                            Page 151 of 232
  2343.  
  2344. character.  If the name is "MESSAGES", it will be called "MAIN".  Otherwise
  2345. the main message base will be called the full prefix.
  2346.  
  2347. The  main message base and users file can be included in the list to  scan.
  2348. You  may want to coordinate the USERS and MESSAGES file names in  the  same
  2349. fashion that conference user files and message file names are  coordinated.
  2350. If  the main message base is to be known as TOP then call it  TOPM.DEF  and
  2351. call  the  users TOPU.DEF.  RBBS-PC will work as before  with  the  default
  2352. names  USERS  and  MESSAGES and call the main message base  MAIN,  but  you
  2353. cannot  include the main message base in the list of message bases to  scan
  2354. for  new mail.   This is because the new mail scan keys off the  user  file
  2355. name,  whereas  the name of the main message base keys off of  the  message
  2356. file name.  This constraint can be bypassed by naming the main message file
  2357. MAINM.DEF  and  it's corresponding user file MAINU.DEF.   However,  a  good
  2358. reason  to name the main message base something else is so that  MAIN  does
  2359. not name both the main command section and the main message base.
  2360.  
  2361. There are 3 philosophies that can be implemented on message reporting using
  2362. the CONFIG parameter 19:
  2363.  
  2364.      1.  Report everything.
  2365.      2.  Make a fast minimal report.
  2366.      3.  Make an optimum intermediate report.
  2367.  
  2368. Reporting  everything  means reminding callers of messages they  left,  and
  2369. give the messages numbers of old and new mail.  To do this it is  necessary
  2370. to set configuration parameters to remind callers of old mail and to report
  2371. ALL messages to caller.  Also place "sub-boards" and private conferences in
  2372. the mail scan list of CONFMAIL.DEF.
  2373.  
  2374. Making  a  fast minimal report means that callers will not be  reminded  of
  2375. old messages, specific message numbers will not be list, only the number of
  2376. new messages and whether any are personal will be reported.  This option is
  2377. for when you want people to get the caller to the command level as fast  as
  2378. possible.    For  example, the main message base is not even used.   To  do
  2379. this set configuration parameters to NOT remind callers of old mail and  to
  2380. report  NO  messages  to  caller.  Put the main message  base  as  well  as
  2381. "sub-boards" and private conferences in the mail scan list of CONFMAIL.DEF.
  2382.  
  2383. Providing an optimum intermediate report means reporting individual message
  2384. numbers only for the new mail as well as # of new messages (and whether any
  2385. personal).  The best way to implement this is to set the level of reporting
  2386. messages to the caller to New Only and to put all "sub-boards" and  private
  2387. conferences in the mail scan list of CONFMAIL.DEF.  Set CONFIG parameter 21
  2388. to NOT remind callers of old mail.
  2389.  
  2390.  
  2391. 20.  RBBS-PC QUESTIONNAIRE FACILITIES
  2392. -------------------------------------
  2393. RBBS-PC  provides  a  highly sophisticated  script-driven  capability  that
  2394. allows  a SYSOP to ask new users questions or questions of users when  they
  2395. say  G>oodbye.   To  ask  new users questions  the  file  named  in  CONFIG
  2396. parameter 84 must exist.  To ask questions of users when they say  G>oodbye
  2397. the  file named in CONFIG parameter 85 must exist.  The  SYSOP can  set  up
  2398. RBBS-PC Version CPC17-1A                                    October 2, 1988
  2399. Copyright 1988 by D. Thomas Mack                            Page 152 of 232
  2400.  
  2401. the  script in such a way as to raise or lower a new users  security  level
  2402. based on the answers.  Contained within the script is the file to which the
  2403. answers  are to be written.  RBBS-PC will only activate  the  corresponding
  2404. script files if they exist, otherwise the functions are bypassed.
  2405.  
  2406. The  script files should be created with your favorite editor.   During the
  2407. testing phases both EDLIN and WordStar were used and both worked correctly.
  2408.  
  2409. All "script" files are formatted the same and contain support for:
  2410.  
  2411.      o Branch to labels
  2412.      o Display lines
  2413.      o Display line and get response
  2414.      o Response validation (Multiple choice)
  2415.      o Numeric validation
  2416.      o Forward and backward branching
  2417.      o Raising and lowering user security level
  2418.      o Aborting the questionnaire
  2419.      o Chaining to another questionnaire
  2420.  
  2421. The  first line in every script file must contain the file name  where  the
  2422. responses  to  the script will be appended as the first parameter  and  the
  2423. maximum  security  level  a users security level can be raised  to  as  the
  2424. second parameter.  This file can be any valid text type file.  The rest  of
  2425. each script file must contain valid script commands.  Script commands are 1
  2426. character in length and must be in column 1 of each script line.
  2427.  
  2428. Following is a list and description of valid script commands:
  2429.  
  2430.      :  A colon indicates a label command
  2431.      *  An asterisk indicates a display data command
  2432.      ?  A question mark indicates a display and wait for response command
  2433.      =  An equal sign indicates a multiple choice branch command
  2434.      >  A greater than symbol indicates a goto command
  2435.      +  A plus sign indicates a raise security level command
  2436.      -  A minus sign indicates a lower security level command
  2437.      @  An "at" sign means to abort questionnaire and do not write results
  2438.      &  An ampersand means to establish a questionnaire chain
  2439.  
  2440. :  Colon (Label command)
  2441.    This  command  is used to provide labels that can be branched to from  =
  2442.    and > commands.
  2443.    i.e.     :QUESTION1
  2444.  
  2445. *  Asterisk (Display data command)
  2446.    This command is used to send data to the user.
  2447.    i.e.     *In order to better serve those who pass this way, I would
  2448.  
  2449. ?  Question mark (Display data and get response)
  2450.    This command is used to send data to the user and wait for a   response.
  2451.    The  user will be required to input a response.   The ENTER key alone is
  2452.    an invalid response.  No other checks are made.
  2453.    i.e.     ?DO YOU OWN YOUR OWN PC? (Y/N)
  2454. RBBS-PC Version CPC17-1A                                    October 2, 1988
  2455. Copyright 1988 by D. Thomas Mack                            Page 153 of 232
  2456.  
  2457. =  Equal sign (Response validation - Multiple choice)
  2458.    This  command  is  used  in conjunction with  the  ?  command  and  must
  2459.    immediately  follow the ?  command for which it applies.   This  command
  2460.    allows  for  checking/editing  of  single  character  responses  to  the
  2461.    preceding  ?  command and allows branch logic to be exercised  based  on
  2462.    the  response  given.   Multiple = commands must be coded  on  the  same
  2463.    line.  The format follows:
  2464.  
  2465.    =AXXXXXXXXX=BYYYYYYYYY= ZZZZZZZZZZ
  2466.  
  2467.    =  Indicates that a single character comparison value follows
  2468.    A  Is the comparison value
  2469.    X  Is the label to branch to if the response is "A"
  2470.    =  Indicates that a single character comparison value follows
  2471.    B  Is the comparison value
  2472.    Y  Is the label to branch to if the response is "B"
  2473.    =  Indicates that a single character comparison value follows
  2474.       (SPACE) This is a special comparison value that is always used as the
  2475.       last comparison value and means "INVALID" response given
  2476.    Z  Is the label to branch to if an invalid response is given
  2477.  
  2478.    Maximum line length is 255 characters and the last = on the line "MUST"
  2479.    have a comparison value of " " (SPACE).
  2480.  
  2481.    i.e.     :QUESTION1
  2482.             ?Do you run a BBS system.  (Y/N)
  2483.             =YQUESTION2=NQUESTION2= QUESTION1E
  2484.             :QUESTION1E
  2485.             *Please respond Y or N
  2486.             >QUESTION1
  2487.             :QUESTION2
  2488.  
  2489.    There  is an additional format for the = command,  where the  comparison
  2490.    value  of # (Pound sign) is used.   This is used as a numeric check  and
  2491.    encompasses 0-9,  (),  - and space.   This format requires two  entries.
  2492.    The first is to test for numerics and the second is the invalid response
  2493.    branch label (i.e.    =#QUESTION3= QUESTION2E).
  2494.  
  2495. >  Greater than sign (Forward and backward branching)
  2496.    This  command  is  used to branch to specific labels within  the  script
  2497.    file.
  2498.    i.e.     >QUESTION4
  2499.  
  2500. +  Plus sign (Raise user security level)
  2501.    This  command will add the value in columns 2-6 to the  default security
  2502.    level given new users or the current security level of old users.
  2503.    i.e.    +5
  2504.  
  2505. -  Minus sign (Lower user security level)
  2506.    This  command  will  subtract the value in columns 2-6  to  the  default
  2507.    security given new users or the current security level of old users.
  2508.    i.e.     -1
  2509. RBBS-PC Version CPC17-1A                                    October 2, 1988
  2510. Copyright 1988 by D. Thomas Mack                            Page 154 of 232
  2511.  
  2512. @  At sign (Abort questionnaire)
  2513.    This command will terminate the questionnaire and NOT write the response
  2514.    to the output file as in the following example.
  2515.  
  2516.       .     :QUESTION1
  2517.             ?Have you answered the questionnaire before.  (Y/N)
  2518.             =YQUESTION2=NQUESTION3= QUESTION1E
  2519.             :QUESTION1E
  2520.             *Please respond Y or N
  2521.             >QUESTION1
  2522.             :QUESTION2
  2523.             @
  2524.             :QUESTION3
  2525.  
  2526. &  Ampersand (Chain questionnaire)
  2527.    This command will establish the next questionnaire in the chain.
  2528.    The file named in columns 2-80 will be used as a continuation to
  2529.    the current questionnaire when the current questionnaire reaches its
  2530.    last line.
  2531.    i.e.   &L:\RBBS\QUESCONT.DEF
  2532.  
  2533.  
  2534. 21.  RBBS-PC's STANDARD INTERFACE FOR PROTOCOL DRIVERS
  2535. ------------------------------------------------------
  2536. RBBS-PC attempts to nurture the maximum amount of diversity and  innovation
  2537. as possible.   For this reason the source code has always been distributed.
  2538. The  free exchange of information,  on of RBBS-PC's two primary  objectives
  2539. requires  that  communications  occur.   With PC's this  communications  is
  2540. electronic   and  electronic  communications  fosters  a  multiplicity   of
  2541. "protocols" in which data can be exchanged.
  2542.  
  2543. A  "protocol"  for  the  exchange of files is just  a  set  of  cooperative
  2544. conventions that allow two different computer's software to transfer  files
  2545. between themselves.  RBBS-PC supports four "protocols" within its own BASIC
  2546. source  code -- ASCII, Xmodem (checksum), Xmodem (CRC), and Ymodem.   These
  2547. are  totally  configurable  by  the SYSOP  when  setting  up  RBBS-PC.
  2548.  
  2549. In addition to these four "protocols" and in order to provide advocates  of
  2550. specific   protocols  a  means  of  adding  their  particular   flavor   of
  2551. communications  protocol to RBBS-PC, a standard interface has been  created
  2552. so  that  "external"  protocols can be installed  in  RBBS-PC.   "External"
  2553. protocols  are simply defined as programs outside of RBBS-PC which  perform
  2554. the file transfer.
  2555.  
  2556. Before calling "external" protocol drivers, RBBS-PC will do the following:
  2557.  
  2558.     1. verify that the file exists if the file is to be downloaded.
  2559.     2. for uploads, verify that the file name requested is  valid.
  2560.     3. pass  the  communications  port  to  the  vendor's  protocol-
  2561.        handling routine with the file opened and carrier detect on.
  2562.  
  2563. RBBS-PC  will  call  the  external protocol drivers either  via  the  SHELL
  2564. command in BASIC or via a .BAT file.
  2565. RBBS-PC Version CPC17-1A                                    October 2, 1988
  2566. Copyright 1988 by D. Thomas Mack                            Page 155 of 232
  2567.  
  2568. 21.1  Parameters passed to a protocol driver.
  2569. ----------------------------------------------
  2570. RBBS-PC detects the installation of external file transfer protocols via an
  2571. optional  RBBS-PC system file whose default name is PROTO.DEF.  If no  such
  2572. file  exists,  all and only internal protocols will  be  available -- Ascii,
  2573. Xmodem, XmodemCRC, Ymodem.  This file may be used to rename or delete  some
  2574. or all of RBBS-PC's internal protocols.  If a PROTO.DEF file exists, all of
  2575. RBBS-PC's  internal  protocols must be specified in it as  well.   Internal
  2576. protocols are NOT automatically included when a PROTO.DEF file exists!
  2577.  
  2578. The  protocol definition file has thirteen (13) parameters passed for  each
  2579. external  protocols  defined  for  RBBS-PC.  Each parameter  can  be  on  a
  2580. separate  line  of  its own or all parameters can be on  a  single  line  (
  2581. separated  by commas).  The parameters passed for each  protocol  specified
  2582. are:
  2583.  
  2584.           Parameter       Description
  2585.           1      Protocol Name
  2586.           2      Security Level required to use protocol
  2587.           3      Method to invoke protocol
  2588.           4      Whether 8 bit connection required
  2589.           5      Whether "reliable" connection required
  2590.           6      Whether "batch" mode supported
  2591.           7      Number of bytes in a block transferred
  2592.           8      Indicate transfer always successful
  2593.           9      Factor to estimate file transfer time
  2594.          10      RBBS-PC "macro" to invoke before protocol
  2595.          11      Method for checking transfer's success
  2596.          12      Template to use for downloading
  2597.          13      Template to use for uploading
  2598.  
  2599. Protocol  Name   --  The FIRST CHARACTER is the letter by  which  a  caller
  2600.     selects  the  protocol.     The prompt for the  selection  of  protocol
  2601.     includes  the  protocol  name.   It  is  recommended  that  the  second
  2602.     character  be ")" to resemble the rest of the prompts in RBBS-PC,  e.g.
  2603.     "Z)modem".  RBBS-PC defaults to putting each protocol on the same line,
  2604.     separated  by  a comma, until the line gets too long.  Each  SYSOP  can
  2605.     control  the  placement of the line by putting a carriage  return  line
  2606.     feed  at  the end of the protocol name.  If this is  done,  the  entire
  2607.     protocol  name  must be in parentheses.  For example,  instead  of  the
  2608.     prompt
  2609.  
  2610. A)scii,X)modem,C)rcXmodem,Y)modem,N)one
  2611.  
  2612. a SYSOP may want the prompt to be
  2613.  
  2614. A)scii (text files only)
  2615. X)modem checksum
  2616. C)rc Xmodem
  2617. Y)modem (1K Xmodem)
  2618. N - None (cancel)
  2619.  
  2620.     Then  the protocol definition file , PROTO.DEF, should  be  constructed
  2621.     using  quotes  (to include the carriage return/line feed in  the  first
  2622. RBBS-PC Version CPC17-1A                                    October 2, 1988
  2623. Copyright 1988 by D. Thomas Mack                            Page 156 of 232
  2624.  
  2625.     parameter) as follows:
  2626.  
  2627. "A)scii (text files only)
  2628. ",...
  2629. "X)modem checksum
  2630. ",...
  2631. "C)rc Xmodem
  2632. ",...
  2633. "Y)modem (1K Xmodem)
  2634. ",...
  2635. "N - None (cancel)
  2636. ",...
  2637.  
  2638.     with the remaining 12 parameters put where "..." occurs.
  2639.  
  2640. Security  Level  --  This is the minimum security to be  able  to  use  the
  2641.     protocol being described.
  2642.  
  2643. Method  to  Invoke Protocol -- A protocol can be invoked by  one  of  three
  2644.     methods:
  2645.              shell,
  2646.              door, or
  2647.              internal (S, D, or I).
  2648.     If  "I"  is  specified, it must be immediately  followed  by  a  letter
  2649.     specifying  what internal protocol to use, where the choices are A,  X,
  2650.     C, Y, or N respectively for Ascii, Xmodem, Xmodem CRC, Ymodem, or  None
  2651.     (cancel  transfer).  "IC" would mean to use RBBS-PC's  internal  Xmodem
  2652.     CRC.   If no protocol is specified equivalent to the  internal  "None",
  2653.     RBBS-PC will add it.  If the letter N is used for a transfer  protocol,
  2654.     another protocol must be specified that is equivalent to "None".
  2655.  
  2656. Whether to Require 8 Bit -- By putting "8" in this parameter, the SYSOP  is
  2657.     specifying that the protocol requires the caller to be able to send  or
  2658.     receive 8 data bits.  If 8 data bits is required and the caller is  not
  2659.     at 8 bit, RBBS-PC will prompt the caller to change to 8 bit in order to
  2660.     use the protocol.
  2661.  
  2662. Whether  A  Reliable  Connections Is Required -- By  putting  "R"  in  this
  2663.     parameter, the SYSOP is specifying that the protocol will not be  shown
  2664.     or  made  available to the caller unless the  connections  is  reliable
  2665.     (i.e. such as Microcom's MNP protocol that is built into many modems).
  2666.  
  2667. Whether  Support  Batch -- By putting "B" in this parameter, the  SYSOP  is
  2668.     indicating  that "batch" file transfers are allowed with the  protocol.
  2669.     "Batch" means a multi-file download request will be processed together.
  2670.     The  receive function in Qmodem's "batch" Ymodem attempts to write  the
  2671.     file  being  received to the same letter drive and path name as  it  is
  2672.     stored  on the sending PC.  Because it is unlikely that the PC  running
  2673.     RBBS-PC will have the same disk letters and path names as the  callers,
  2674.     it  is  recommended  that  QMODEM's "batch"  Ymodem  not  be  used  for
  2675.     receiving files via "batch" Ymodem (use DSZ's instead).  RBBS-PC enters
  2676.     an external protocol only once to do multiple file downloads.   RBBS-PC
  2677.     has been tested with such "batch" protocols as Zmodem's DSZ,  Megalink,
  2678.     and Sealink.
  2679. RBBS-PC Version CPC17-1A                                    October 2, 1988
  2680. Copyright 1988 by D. Thomas Mack                            Page 157 of 232
  2681.  
  2682.  
  2683. Blocksize  --  This parameter indicates the number of bytes in  each  block
  2684.     transferred.   This  is only used to inform the caller  the  number  of
  2685.     blocks  to  expect when downloading.  A zero in  this  parameters  will
  2686.     cause RBBS-PC to report only the number of bytes to expect.  For Xmodem
  2687.     or  XmodemCRC this value would be 128.  For Ymodem this value would  be
  2688.     1024.
  2689.  
  2690. Indicate Transfers Always Successful -- If there is no way for the protocol
  2691.     to  inform  RBBS-PC  if a transfer was successful, put a  "F"  in  this
  2692.     parameter.   This  means  that  all  transfers  will  be  regarded   as
  2693.     successful.
  2694.  
  2695.     Zmodem (DSZ) used in a multi-tasking DOS environment (i.e. where  there
  2696.     can only be a single environment) and CLINK are examples of a protocols
  2697.     that require this to be set.
  2698.  
  2699. Factor to Estimate File Transfer Time -- This is the decimal number used by
  2700.     RBBS-PC to estimate the elapse time to download a file. The higher  the
  2701.     number,  the  faster  the protocol and the  lower  the  time  estimate.
  2702.     Standard equivalents in RBBS-PC are:
  2703.  
  2704.      Ascii .........  0.92
  2705.      Xmodem ........  0.78
  2706.      XmodemCRC .....  0.78
  2707.      Kermit ........  0.78
  2708.      Ymodem ........  0.87
  2709.      Imodem ........  0.90
  2710.      YmodemG .......  0.95
  2711.      Windowed xmodem  0.78
  2712.  
  2713.     If no value is specified, a default of 0.87 will be used.
  2714.  
  2715. RBBS-PC  "Macro" to Invoke Before Protocol -- This is the  RBBS-PC  "macro"
  2716.     (i.e. a series of standard RBBS-PC commands) to invoke before  invoking
  2717.     the protocol.  It can be used to display special messages, to delay the
  2718.     start  of the protocol, or to prompt for special information passed  to
  2719.     the protocol.
  2720.  
  2721. Method  for  Checking  Transfer's  Success -- This  is  required  only  for
  2722.     external protocols.  This parameter indicates how RBBS-PC is to  detect
  2723.     a file transfer's failure.  The format is "x=y=z" where:
  2724.  
  2725.            x is which parameter tells whether the transfer was successful,
  2726.            y is the string which indicates failure, and
  2727.            z is an optional parameter telling RBBS-PC whether to write out
  2728.              information needed when DOORing to a protocol in advance of
  2729.              the file exchange.
  2730.  
  2731.     For  QMXFER.EXE from John Friel and the Forbin Project, this  would  be
  2732.     "4=F"  - meaning the 4th parameter indicates failure if it begins  with
  2733.     "F".
  2734. RBBS-PC Version CPC17-1A                                    October 2, 1988
  2735. Copyright 1988 by D. Thomas Mack                            Page 158 of 232
  2736.  
  2737.     For  Zmodem  as  implemented in DSZ from  Omen  Technologies,  the
  2738.     proper  choice  depends on whether SHELLing or  DOORing  is  used.
  2739.     For  SHELLing, put in "1=E"  to indicate that the first  parameter
  2740.     uses  "E" to indicate an error has occurred.  For DOORing, put  in
  2741.     "4=E=A"  to indicate that the fourth parameter uses "E"  an  error
  2742.     has  occured.   The "=A" means that RBBS-PC is to  do  an  advance
  2743.     write  of  the filename and protocol used.  DSZ then  appends  its
  2744.     error  report to the log file.   To the file "XFER-" plus  node  #
  2745.     plus   ".DEF"   RBBS-PC   will  write  out   a   line   containing
  2746.     "<filename>,,<protocol letter>".  Omitting an "=" causes a default
  2747.     to  "4=F".  The file checked is "XFER-" plus the node number  plus
  2748.     the extension "DEF".   On node 1 the file checked is "XFER-1.DEF".
  2749.  
  2750. Template  to  Use  for Downloading -- This is required  only  for  external
  2751.     protocols.   It  tells  RBBS-PC  how to invoke  a  download.   See  the
  2752.     following section on discussion of "templates".
  2753.  
  2754. Template  to  Use  for  Uploading -- This is  required  only  for  external
  2755.     protocols.  It tells RBBS-PC how to invoke an upload.
  2756.  
  2757. 21.2  Calling external protocols using "templates"
  2758. --------------------------------------------------
  2759. A "template" is used to inform RBBS-PC how to invoke an external  protocol.
  2760. The  first  word  of the template must be the  file  name  (including  file
  2761. extension) of the program to invoke.  RBBS-PC will check to make sure  that
  2762. the file exists.  If the file does not exits, the protocol will not be made
  2763. available  to  the caller.  If the file does exists, the protocol  will  be
  2764. shown to the caller.
  2765.  
  2766. RBBS-PC will dynamically substitute values for pre-defined strings inside a
  2767. "template".   Each  supported string is enclosed in square  brackets.   The
  2768. strings supported include:
  2769.  
  2770. [n]       where  n is a positive integer.  Substitutes value in  the  array
  2771.           A$,  which can best be viewed as a work array.  Macros can  store
  2772.           prompted values in specific elements in the array.
  2773.  
  2774. [FILE].   Name of the file (FILE.NAME$) to be transferred.
  2775.  
  2776. [BAUD].   Baud rate.  Speed at which the caller dialed RBBS-PC.
  2777.  
  2778. [PARITY]. Parity used by the caller.
  2779.  
  2780. [PORT].   DOS  device name for the communications port to be used  for  the
  2781.           file transfer (COM1,COM2, etc.).
  2782.  
  2783. [PORT#]   Number  of  the  communications  port to be  used  for  the  file
  2784.           transfer (1,2,3, etc.).
  2785.  
  2786. [NODE].   Number  of  the RBBS-PC node invoking the file  transfer  (1,2,3,
  2787.           etc.).
  2788.  
  2789. [PROTO].  Letter of the protocol for the file transfer.
  2790. RBBS-PC Version CPC17-1A                                    October 2, 1988
  2791. Copyright 1988 by D. Thomas Mack                            Page 159 of 232
  2792.  
  2793. Everything else in a template will be passed intact.  If the external  file
  2794. transfer is to be invoked via a SHELL, it is recommended that the  external
  2795. file  transfer  program  be  SHELLed to directly.   If  the  external  file
  2796. transfer is to be invoked via a DOOR, it can be either
  2797.  
  2798.      1.)  DOORed to directly using the same template as for SHELLing, or
  2799.  
  2800.      2.)  DOORed to indirectly via a .BAT file with the command  parameters
  2801.           passed to it by RBBS-PC.  For example, a "door" for QMXFER  might
  2802.           have a download template of:
  2803.  
  2804.           "RBBSQM.BAT [FILE] [PORT] [BAUD] [PROTO]"
  2805.  
  2806.           and the file RBBSQM.BAT have the following in it:
  2807.  
  2808.           C:QMXFER.COM -s -f %1 -l %2 -c -b %3 -p %4
  2809.  
  2810.           DOS substitutes the passed parameters for the variables beginning
  2811.           with  the percent sign.  .BAT files are needed in doors if  there
  2812.           are  additional programs to run before or after the  actual  file
  2813.           transfer.
  2814.  
  2815. The  following  examples should provide some help in understanding  how  to
  2816. invoke external protocols:
  2817.  
  2818. Example #1:
  2819.  
  2820. Z)ippy,5,S,8,,,,,0.98,,,"c:\proto\zippy -s [FILE]","c:\proto\zippy -r [FILE]"
  2821.  
  2822. Can be interpreted to be:
  2823.      used "Z" as invoking letter,
  2824.      put "Z)ippy" in the prompt,
  2825.      the minimum security to use this protocol is 5,
  2826.      the protocol will be invoked via a SHELL command,
  2827.      an 8-bit connection is required,
  2828.      estimate the download time as 0.98 times as fast as normal,
  2829.      use normal RBBS-PC type of report to check for a successful transfer,
  2830.      invoke the protocol for downloads using the following string:
  2831.           "c:\proto\zippy -s [FILE]"
  2832.      and invoke the protocol for uploads using the following string:
  2833.           "c:\proto\zmodem -r [FILE]"
  2834.      where the file name is substituted for "[FILE]" in either case.
  2835.  
  2836. Example #2:
  2837.  
  2838. X)modem,5,IX,8,,,128,,0.8,,,,
  2839.  
  2840. Can be interpreted to be:
  2841.      used "X" as invoking letter,
  2842.      put "X)modem" in the prompt,
  2843.      the minimum security to use this protocol is 5,
  2844.      the protocol is an internal RBBS-PC protocol,
  2845.      an 8-bit connection is required, and
  2846.      estimate the download time as 0.8 times as fast as normal.
  2847. RBBS-PC Version CPC17-1A                                    October 2, 1988
  2848. Copyright 1988 by D. Thomas Mack                            Page 160 of 232
  2849.  
  2850. 21.3  Parameters Returned by a Protocol Driver
  2851. ----------------------------------------------
  2852. All  protocol  drivers are expected to return information  about  the  file
  2853. transfer in a file named XFER-xx.DEF where the value for xx is the node  ID
  2854. (1 to 36).  If the protocol cannot accommodate this minimal requirement, it
  2855. can still be used by telling RBBS-PC to indicate file transfers are  always
  2856. successful -- section 21.1, parameter 9.
  2857.  
  2858. The  one  item  of  information RBBS-PC requires to  be  returned  from  an
  2859. external protocol drive is whether or not the file transfer was successful.
  2860. The failure indicator MUST BE:
  2861.  
  2862.    a.)  the first character of
  2863.    b.)  any parameter
  2864.  
  2865. in the file XFER-xx.DEF.  To show that file transfer failures are indicated
  2866. by  the  first  parameter  and the letter  "E"  in  the  file  XFER-xx.DEF,
  2867. parameter 11 (as described in section 21.1) would be written as "1=E".   To
  2868. show that file transfer failures are indicated by the fourth parameter  and
  2869. the  letter  "F",  parameter 11 (as described in  section  21.1)  would  be
  2870. written as "4=F".
  2871.  
  2872. No  other information is required when SHELLing to external  file  transfer
  2873. protocols.   However, when DOORing to external file transfer protocols  the
  2874. log file for the transfer MUST HAVE the file name as the first parameter.
  2875.  
  2876. Protocol drivers that do not have the file name as the first parameter  can
  2877. still be used by telling RBBS-PC to write out three parameters (file  name,
  2878. an  empty parameter, and the letter of the file transfer  protocol)  before
  2879. invoking  the external file protocol.  This is done by using  parameter  11
  2880. (as described in section 21.1).  As an example, to DOOR to an external file
  2881. transfer  protocol  that  indicates a file transfer failure  by  using  the
  2882. letter "F" in the fourth parameter, but which does not return the file name
  2883. used,  parameter  11  (as described in section 21.1) would  be  written  as
  2884. "4=F=A".   The external protocol would then append its own  information  to
  2885. the log file.
  2886.  
  2887. 21.4  The Protocol Drivers Tested With RBBS-PC
  2888. ----------------------------------------------
  2889. RBBS-PC has been tested with the following protocol drivers:
  2890.  
  2891. CLINK -- From System Enhancement Associates.  Supports batch file transfers
  2892.     but requires that transfers always be assumed successful.
  2893.  
  2894. DSZ -- From Omen Technologies.  Supports Ymodem, Ymodem Batch, YmodemG, and
  2895.     Zmodem.   YmodemG  requires  a "reliable"  connection.   DSZ  logs  the
  2896.     results  of the file transfers to a file specified in  the  environment
  2897.     variable DSZLOG.  Therefore, the AUTOEXEC.BAT file for an RBBS-PC  that
  2898.     uses DSZ should specify
  2899.  
  2900.      "SET DSZLOG=XFER-x.DEF"
  2901.  
  2902.     where  x  is the node number.   DSZ seems unable to create a  log  file
  2903.     whenever a drive or path is specified.  If invoking ZMODEM via the DOOR
  2904. RBBS-PC Version CPC17-1A                                    October 2, 1988
  2905. Copyright 1988 by D. Thomas Mack                            Page 161 of 232
  2906.  
  2907.     mechanism,  use the "=A" option at the end of the success method  check
  2908.     so that RBBS-PC will append the information to the DSZ log it needs and
  2909.     DSZ  will then append the success report.  In a multi-user  environment
  2910.     where  a  different  environment  variable for each  node  can  not  be
  2911.     specified  (i.e. all nodes must share the same DSZ log  file),  specify
  2912.     that  a all transfers are always successful for protocols  handled  via
  2913.     DSZ.   See the discussion of parameter 11 in section 21.1  for  further
  2914.     considerations when using DSZ.
  2915.  
  2916. MLINK -- MEGALINK protocol supports batch file transfers but requires  that
  2917.     transfers always be assumed successful.
  2918.  
  2919. PC-KERMIT  --  from Columbia University.  PCKERMIT.EXE is supplied  by  The
  2920.     Source  as  a  public service and consists  of  sliding  window  KERMIT
  2921.     protocol. The development of "windowing" within the KERMIT architecture
  2922.     (i.e.  Super KERMIT) was funded by The Source and implemented by  Larry
  2923.     Jordan and Jan van der Eijk.
  2924.  
  2925.     Columbia  University  holds  the copyright  and  maintains  the  Kermit
  2926.     protocol. Like RBBS-PC, Columbia University allows KERMIT to be  passed
  2927.     along  to others and "ask only that profit not be your goal, credit  be
  2928.     given where it is due, and that new material be sent back to us so that
  2929.     we   can  maintain  a  definitive  and  comprehensive  set  of   KERMIT
  2930.     implementations".
  2931.  
  2932.     PCKERMIT.EXE  is  not  a terminal program.  It  simply  implements  the
  2933.     Kermit protocol, including the sliding window extension.  It will  work
  2934.     with  older  "Kermit Classic" implementations as  well,  via  automatic
  2935.     negotiation  between the two Kermit programs.  PCKERMIT.EXE runs  as  a
  2936.     "one-shot"  execution  then  returns to  RBBS-PC.   PCKERMIT  does  not
  2937.     establish   a  carrier  with  a  remote  system.   The  connection   is
  2938.     established  by  RBBS-PC.   File  transfers  must  always  be   assumed
  2939.     successful.
  2940.  
  2941. QMXFER  --  is  supplied  by The Forbin Project as  a  public  service  and
  2942.     supports   five  different  protocols  --  XMODEM  (checksum),   XMODEM
  2943.     (cyclical  redundancy check), YMODEM, YMODEMG, and IMODEM.  QMXFER  was
  2944.     implemented by John Friel III, author of QMODEM. YMODEM and YMODEMG are
  2945.     protocols designed by Chuck Frosberg.  IMODEM is a protocol designed by
  2946.     John  Friel.  The later two are designed to work when the link  between
  2947.     the two modems is "error free" (i.e. both modems have the MNP  protocol
  2948.     built  in)>  QMXFER.COM runs as a "one-shot" execution then returns  to
  2949.     RBBS-PC.   QMXFER  does not establish a carrier with a  remote  system.
  2950.     The  connection is established by RBBS-PC.  File transfer failures  are
  2951.     indicated by an "F" in the fourth parameter of the log file returned to
  2952.     RBBS-PC.
  2953.  
  2954. WXMODEM  --  is  supplied by The Forbin Project as  a  public  service  and
  2955.     supports the window XMODEM protocol designed by Pete Boswell.  Like all
  2956.     of  RBBS-PC's  protocol  drivers,  WXMODEM.COM  runs  as  a  "one-shot"
  2957.     execution  then  returns  to RBBS-PC.  WXMODEM  does  not  establish  a
  2958.     carrier  with a remote system.  The connection is established by  RBBS-
  2959.     PC.   File  transfer  failures are indicated by an "F"  in  the  fourth
  2960.     parameter of the log file returned to RBBS-PC.
  2961. RBBS-PC Version CPC17-1A                                    October 2, 1988
  2962. Copyright 1988 by D. Thomas Mack                            Page 162 of 232
  2963.  
  2964. 22.  UPLOADED FILE TIPS
  2965. -----------------------
  2966. If someone uploads a BASIC file to you, and it will not list on your screen
  2967. using the DOS TYPE command,  you should go into BASIC,  load the file, list
  2968. it,  then re-save it using the same name.  If when you try to load the file
  2969. into  the  BASIC interpreter you get a `Direct Statement In   File'   error
  2970. printed  on  the screen, the BASIC file has a line without a  line  number.
  2971. This will not interfere  with  the  re-saving of the file unless the direct
  2972. statement  is at the beginning of the  file;  if the file  lists  properly,
  2973. then  the direct statement is at the end of the  file.   If the  file  does
  2974. not  list properly, then the direct statement is at  the beginning  of  the
  2975. file and has to be removed using a text editor (EDLIN)  before the  program
  2976. can be loaded and run.
  2977.  
  2978. Do  not attempt to save a BASIC file after getting the `Direct Statement In
  2979. File'  error  during loading without listing the program  first;  you  will
  2980. destroy the file otherwise.  If you wish to load an uploaded file (a  BASIC
  2981. program or any other text file) into a text editor to change the content of
  2982. the  file,  you  will first have to first add line feeds to the end of each
  2983. line  (after  each  carriage return).
  2984.  
  2985. Finally,   every  SYSOP should assume that any uploaded file him that   can
  2986. be executed (i.e.  .BAS,  .COM,  .EXE) has the capability of destroying all
  2987. the  files available to the PC it is executed on.  This may be because  the
  2988. documentation  is in error,  the program was executed incorrectly,  or  the
  2989. program   was designed to be malicious.   It behooves every SYSOP  to  know
  2990. what   every  uploaded file does in order to protect not only  the  RBBS-PC
  2991. system, but its users.
  2992.  
  2993.  
  2994. 23.  DUE WARNING AND SYSOP'S LEGAL LIABILITY
  2995. --------------------------------------------
  2996. While no definitive case-law or legislation exists defining the liabilities
  2997. of System Operators, every SYSOP should assume that they are as responsible
  2998. for  their own actions when running an electronic bulletin board system  as
  2999. they  would  be for any other action as a citizen of the United States  who
  3000. chooses  to exercise their right to freedom of speech.   One of the  unique
  3001. features  of RBBS-PC is that users have to OVERTLY register  themselves  --
  3002. even  when  the RBBS-PC is "open" to the general public.   This gives  each
  3003. SYSOP the opportunity to give every user "due notice" and require each user
  3004. to  actively  acknowledge such notice.  For some SYSOPs it  is  simply  the
  3005. rules  of their board.  For me, the following is what I use as the text  in
  3006. my NEWUSER file:
  3007.  
  3008.     "Welcome   to   the  world of RBBS-PC!    Before  continuing   you
  3009.     should  understand  your  responsibilities  as  a  RBBS-PC   user.
  3010.     Specifically they are:
  3011.  
  3012.     1.    Actively   encourage  and  promote the free   exchange   and
  3013.     discussion   of information,  ideas and opinions, except when  the
  3014.     content  would  compromise  the national security  of  the  United
  3015.     States;   violate  proprietary  rights,  personal   privacy,    or
  3016.     applicable   state/federal/local laws and  regulations   affecting
  3017.     telecommunications; or constitute a crime or libel.
  3018. RBBS-PC Version CPC17-1A                                    October 2, 1988
  3019. Copyright 1988 by D. Thomas Mack                            Page 163 of 232
  3020.  
  3021.     2.    Use   your  real  name and fully  disclose   any   personal,
  3022.     financial,   or commercial interest when evaluation  any  specific
  3023.     product or service.
  3024.  
  3025.     3.    Adhere  to  these rules and notify me immediately  when  you
  3026.     discover  any violations of the rules.
  3027.  
  3028.     FURTHER  every  user explicitly acknowledges that all  information
  3029.     obtained from this RBBS-PC is provided "as is" without warranty of
  3030.     any  kind,   either  expressed or  implied,   including,  but  not
  3031.     limited  to the implied warranties of merchantability and  fitness
  3032.     for  a particular purpose and that the entire risk  of  acting  on
  3033.     information  obtained from this  RBBS-PC,  including   the  entire
  3034.     costs of all necessary remedies,  is with those who choose to  act
  3035.     on  such  information  and  not  the  operator  of  this  RBBS-PC.
  3036.     Register if you agree."
  3037.  
  3038. This  won't  protect you from prosecution if you allow your RBBS-PC  to  be
  3039. used for criminal activities.  However, it does serve to cause each user to
  3040. voluntarily  and OVERTLY accept my "rules" and allows me to sleep better at
  3041. night  knowing that I have given "due notice."  My own personal  philosophy
  3042. is  to  actively  pursue  and prosecute ANY user on my  board  who  I  find
  3043. engaging  in  what  appears  to  be  a  violation  of  the  above   notice.
  3044. Essentially,  if you are going to run an RBBS-PC open to the general public
  3045. as  I do,  your board's reputation and standards must be able to  withstand
  3046. public scrutiny.  If you don't feel you can maintain such standards, either
  3047. don't run a RBBS-PC or run a very, very private one (and be sure to put all
  3048. your assets in the wife's and kid's names).
  3049.  
  3050. Since I'm not a lawyer,  if you want a legal opinion on your liabilities as
  3051. a  SYSOP your only source of legal advice should be an attorney licensed to
  3052. practice  in your state.   Just remember it may not be the best advice  and
  3053. that  the  legal  liabilities regarding the  operation  of  bulletin  board
  3054. systems is unclear.
  3055.  
  3056.  
  3057. 24.  COMPILING AND LINKING RBBS-PC
  3058. ----------------------------------
  3059. RBBS-PC  source code is distributed along with the executable program RBBS-
  3060. PC.EXE.   It  is NOT necessary to recompile or re-link RBBS-PC in order  to
  3061. utilize  RBBS-PC.   However,  some users may wish to modify the source  and
  3062. recompile it.   This section is intended for those hardy few who choose  to
  3063. do so.   Remember only what is distributed is supported -- anything else is
  3064. strictly yours to debug!
  3065.  
  3066. RBBS-PC's  source code is compilable by the IBM BASIC Compiler Version  2.0
  3067. as  released  by  IBM  and with the IBM updates  to  it  through  11/22/85.
  3068. Subsequent  patches released by IBM for the Version 2.0 compiler appear  to
  3069. disable the compiler to the point where it can not compile RBBS-PC.   RBBS-
  3070. PC's source code is compilable by all of Microsoft's QuickBASIC Compilers -
  3071. -  versions  1.0,  1.02,  2.0, 2.01, 3.0,  and  4.0.   However  Microsoft's
  3072. QuickBASIC  Compiler version 3.0 is the compiler used to generate the  .EXE
  3073. files  distributed  with RBBS-PC because, regrettably, the  QuickBASIC  4.0
  3074. compiler  has some problems with applications that SHELL and also  utilized
  3075. RBBS-PC Version CPC17-1A                                    October 2, 1988
  3076. Copyright 1988 by D. Thomas Mack                            Page 164 of 232
  3077.  
  3078. the communications ports.
  3079.  
  3080. 24.1 Compiling CONFIG and RBBS-PC
  3081. ---------------------------------
  3082. Version  CPC17-1A  of RBBS-PC's .EXE file is distributed after having  been
  3083. compiled  with  QuickBASIC  Version 3.00 compiler that had  the  DTR  patch
  3084. described  in  Appendix T applied to it.
  3085.  
  3086. CONFIG.EXE is generated from compiling with multiple BASIC source files  --
  3087. CNFG-VAR.BAS, CONFIG.BAS, CNFG-SUB.BAS. The output of the multiple compiles
  3088. (CONFIG.OBJ  and  CNFG-SUB.OBJ) generate multiple .OBJ input files  to  the
  3089. LINK step that create CONFIG.EXE.
  3090.  
  3091. The  QuickBASIC  version 3.0 compiler  command should be:
  3092.      QB  CONFIG.BAS,/E/O/C:2048/;
  3093.      QB  CNFG-SUB.BAS,/O;
  3094.  
  3095. The command for IBM BASIC Compiler version 2.00 should be:
  3096.      BASCOM CONFIG.BAS,,NUL,/E/O/C:2048/N
  3097.      BASCOM CNFG-SUB.BAS,,NUL,/O/N
  3098.  
  3099. Compiling  CONFIG  requires that CNFG-VAR.BAS be in the sub-directory  from
  3100. which they are being compiled.
  3101.  
  3102. RBBS-PC.EXE is generated from compiling with multiple BASIC source files --
  3103.             RBBS-VAR.BAS,
  3104.             RBBS-PC.BAS,
  3105.             RBBSSUB1.BAS,
  3106.             RBBSSUB2.BAS,
  3107.             RBBSSUB3.BAS,
  3108.             RBBSSUB4.BAS, and
  3109.             RBBSSUB5.BAS.
  3110.  
  3111. The   output   of  the  multiple   compiles   (RBBS-PC.OBJ,   RBBSSUB1.OBJ,
  3112. RBBSSUB2.OBJ,   RBBSSUB3.OBJ,  RBBSSUB4.OBJ,  and  RBBSSUB5.OBJ)   generate
  3113. multiple .OBJ input files to the LINK step that, along with some other .OBJ
  3114. files, create RBBS-PC.EXE.
  3115.  
  3116. The command for QuickBASIC version 3.00 should be:
  3117.      QB  RBBS-PC.BAS,/C:4096/O;
  3118.      QB  RBBSSUB1.BAS,/X/O;
  3119.      QB  RBBSSUB2.BAS,/O;
  3120.      QB  RBBSSUB3.BAS,/O;
  3121.      QB  RBBSSUB4.BAS,/O;
  3122.      QB  RBBSSUB5.BAS,/O;
  3123.  
  3124. The command for the IBM BASIC Compiler version 2.00 should be:
  3125.      BASCOM  RBBS-PC.BAS,,NUL,/C:4096/O/N
  3126.      BASCOM  RBBSSUB1.BAS,,NUL,/X/O
  3127.      BASCOM  RBBSSUB2.BAS,,NUL,/O
  3128.      BASCOM  RBBSSUB3.BAS,,NUL,/O
  3129.      BASCOM  RBBSSUB4.BAS,,NUL,/O
  3130.      BASCOM  RBBSSUB5.BAS,,NUL,/O
  3131. RBBS-PC Version CPC17-1A                                    October 2, 1988
  3132. Copyright 1988 by D. Thomas Mack                            Page 165 of 232
  3133.  
  3134. Compiling  RBBS-PC requires that RBBS-VAR.BAS be in the sub-directory  from
  3135. which  they  are being compiled.  For debugging purposes,  RBBS-PC.BAS  and
  3136. RBBSSUB2.BAS  through  RBBSSUB5.BAS can be compiled with the /E  option  in
  3137. addition to those shown.
  3138.  
  3139. The  BASIC compiler library routines have a NASTY bug in them for those who
  3140. would  like to allow KERMIT protocol to be used,  exit to DOS as  a  remote
  3141. SYSOP, or exit to a "door."
  3142.  
  3143. If you re-compile RBBS-PC and desire to utilize any of these three  RBBS-PC
  3144. functions,  YOU  MUST  patch  your  compiler's libraries  as  described  in
  3145. Appendix T.!
  3146.  
  3147. 24.2 LINKing CONFIG
  3148. -------------------
  3149. CONFIG.OBJ can be LINKed to produce CONFIG.EXE with the command
  3150.  
  3151.      LINK CONFIG+CNFG-SUB+RBBSUTIL+FOSSCOMM+xxxCOM,CONFIG.EXE,,;
  3152.  
  3153. assuming  that all the required files are on the default drive.
  3154.  
  3155. NOTE:  xxxCOM  must be replaced with GWCOM if using the QuickBASIC compiler
  3156.        and  IBMCOM if using the IBM Version 2.0 compiler.
  3157.  
  3158. 24.3 LINKing RBBS-PC
  3159. --------------------
  3160. RBBS-PC.OBJ  can  be LINKed to produce RBBS-PC.EXE with the LINKer  command
  3161. (all  on  one  line) -- LINK @LINKLST3.DAT,  where  the  file  LINKLST3.DAT
  3162. contains the following:
  3163.  
  3164. RBBS-PC+
  3165. RBBSSUB1+
  3166. RBBSSUB2+
  3167. RBBSSUB3+
  3168. RBBSSUB4+
  3169. RBBSSUB5+
  3170. xxxCOM+
  3171. QBARCV2+
  3172. ANSI+
  3173. XMODEM+
  3174. RBBSML+
  3175. BDRIVEC2+
  3176. PC-NET+
  3177. 10-NET+
  3178. RBBSUTIL+
  3179. RBBSDV+
  3180. GIVEBK31+
  3181. FOSSCOMM,
  3182. ,
  3183. ,
  3184. BCOM30.LIB /STACK:2048
  3185.  
  3186. NOTE:  xxxCOM  must be replaced with GWCOM if using the QuickBASIC compiler
  3187.        and  IBMCOM if using the IBM Version 2.0 compiler.  FOSSCOMM.OBJ  is
  3188. RBBS-PC Version CPC17-1A                                    October 2, 1988
  3189. Copyright 1988 by D. Thomas Mack                            Page 166 of 232
  3190.  
  3191.        new with RBBS-PC Version CPC17-1A.
  3192.  
  3193. The above LINK command assumes that all the necessary .OBJ files are on the
  3194. default drive and the necessary .LIB files are on the "C" drive.
  3195.  
  3196.  
  3197. 25.  LIMITED LICENSE
  3198. --------------------
  3199. The   RBBS-PC software is copyrighted but A LIMITED LICENSE IS GRANTED  and
  3200. each user is free to use and share it under the following conditions:
  3201.  
  3202.     1. You may NOT distribute RBBS-PC in modified form.
  3203.     2. You may NOT charge a fee for RBBS-PC itself,  and
  3204.     3. You MUST retain all references to the copyright and authors.
  3205.  
  3206. Please  distribute the original version (or update thereof) of the program.
  3207. If  you have changes please distribute them using the conventions described
  3208. in  section 1.4.    This is necessary so that  future  revisions   can   be
  3209. easily added to the system without requiring the  entire  program.
  3210.  
  3211. Please do NOT resequence the program.   All revisions will be as files that
  3212. replace  the  base program or update thereof and the existing line  numbers
  3213. will be referenced when describing new fixes and enhancements.
  3214.  
  3215.  
  3216. 26.  LIMITED WARRANTY
  3217. ---------------------
  3218. The  RBBS-PC  program  is provided "as is" without warranty  of  any  kind,
  3219. either  expressed  or implied,   including  but not limited to the  implied
  3220. warranties  of merchantability and fitness for a particular  purpose.   The
  3221. entire  risk as to the the quality and performance of the program  is  with
  3222. the  user,   and  should  the program prove defective,  the user  and   not
  3223. the   authors will assume the entire cost of all necessary remedies.   None
  3224. of  the  authors  warrant that the functions contained in the program  will
  3225. meet   any   users'    requirements   or  that   the   operation   of   the
  3226. program   will    be  uninterrupted or error-free.    In  any  case,   each
  3227. author's entire liability  will  be  limited  to the total amount of  money
  3228. the  individual  user  paid  directly and explicitly to each author for the
  3229. use of RBBS-PC.
  3230.  
  3231.  
  3232. 27.  UPGRADING FROM CPC16-1A TO CPC17-1A
  3233. ----------------------------------------
  3234. Before upgrading from CPC16-1A to CPC17-1A, follow these thirteen steps:
  3235.  
  3236.    1. Create  backup  files  of  all  your  current  USERS,  MESSAGES,  and
  3237.       RBBSxPC.DEF files.
  3238.    2. Print  out all the options you selected on your  current  RBBSxPC.DEF
  3239.       file.
  3240.    3. Delete your current RBBSxPC.DEF file (backed up in step 1).
  3241.    4. Run CONFIG, version 17-1A and re-enter the options you had selected.
  3242.    5. Review  the  PROTO.DEF file to make sure it is set up  correctly  for
  3243.       your system (see CONFIG parameter 233).
  3244. RBBS-PC Version CPC17-1A                                    October 2, 1988
  3245. Copyright 1988 by D. Thomas Mack                            Page 167 of 232
  3246.  
  3247.    6. Reformat  your  PASSWRDS file to conform to CPC17-1A's  format  after
  3248.       carefully  reading  section  16.3!  It is  radically  different  from
  3249.       earlier versions of RBBS-PC.
  3250.    7. Make sure you review CONFIG parameter 261 in section 11.14.   RBBS-PC
  3251.       now  uses  a "semaphore" file (i.e. like the way function  key  1  is
  3252.       detected) to drop to DOS at a specific time of day.
  3253.    8. Log  on  locally as the SYSOP and enter  the  information  requested.
  3254.       This  is required because in CPC17-1A, the SYSOP has a "USER"  record
  3255.       and you need to fill it in by logging on locally.
  3256.    9. If you are using any external protocols, make sure that the PROTO.DEF
  3257.       file reflects what you have and where they are (see section 21).
  3258.   10. Review the sections on CPC17-1A's major new features:
  3259.         a.) enhanced mail waiting checking (section 19),
  3260.         b.) automatic SYSOP paging (section 8.11),
  3261.         c.) "colorization" (section 8.10),
  3262.         d.) "macros" (section 8.8),
  3263.         e.) use of upload/download ratios to encourage users (section 16.3),
  3264.         f.) use of "smart" text files (section 8.9), and
  3265.         g.) the enhancements to the FMS system (section 13).
  3266.   11. Use the MENU0 that is new with CPC17-1A.
  3267.   12. Replace HELP07 with the new help file MR.HLP
  3268.   13. Change all "DOORS" that incorrectly re-invoke RBBS-PC using the "net-
  3269.       mail" convention described in CONFIG parameter 262.  They should  NOT
  3270.       pass  the  fourth parameter (i.e. "/baud").  If  they  do,  RBBS-PC's
  3271.       enhanced  security will assume that they are a new user and ask  them
  3272.       for their first and last name (not merely their password).
  3273.  
  3274. PLEASE  NOTE!!!!!  ----  CPC17-1A has a new  CONFIG  (version  17-1A)  that
  3275. replaces  the older versions of the CONFIG utility and the .DEF files  that
  3276. they created!
  3277.  
  3278.  
  3279. 28.  PROPOSED AGENDA FOR A NATIONAL SYSOP CONFERENCE
  3280. ----------------------------------------------------
  3281. As  PC's  (IBM's  and others)  become  more  common in homes  and  offices,
  3282. their  use as vehicles  for  information  exchange continues to grow --  as
  3283. so  eminently  attested  by the astounding growth  of  RBBS-PC  itself!   A
  3284. national   meeting   of  SYSOPs  could foster this  growth  in  information
  3285. exchange;  assist   in focusing on the issues (regulatory  and   otherwise)
  3286. that  foster/inhibit  this growth;  and act as a forum for  new  ideas.   A
  3287. national   meeting,  perhaps  sponsored by the Capital PC  User   Group  or
  3288. even a consortium of other not-for-profit PC user groups could be held .
  3289.  
  3290. SYSOPs  are  not only in the big corporations but also in the  millions  of
  3291. small  businesses,  non-profit  associations,  educational  institutions in
  3292. which the RBBS-PC concept has found  a  home.   They are often the decision
  3293. influencers  in their organizations or area -- as U.S. Robotics  discovered
  3294. when  they introduced their Courier 2400 baud modem so successfully. As   I
  3295. expect  most who would attend would be paying their own  way,   the   first
  3296. conference  would  probably  consist of  that  small  "band  of   brothers"
  3297. who   have   set   up  boards  out  of   the   intensity   of   their   own
  3298. commitment.
  3299. RBBS-PC Version CPC17-1A                                    October 2, 1988
  3300. Copyright 1988 by D. Thomas Mack                            Page 168 of 232
  3301.  
  3302. My   own   vision of such a conference is sort of   a   1980's   electronic
  3303. "Woodstock"   -- if  for no other reason  because  of  the   very   "volks"
  3304. nature  of  SYSOPs.    It  has been a long time  since  there  has  been  a
  3305. conference "of the people, by the people, and for the people."
  3306.  
  3307. What follows is a hypothetical agenda of what might be of interest at  such
  3308. a  conference.   The agenda consists of a "technical" and a "non-technical"
  3309. (management?) set of sessions as follows:
  3310.  
  3311.                  "technical sessions"         "non-technical sessions"
  3312.  
  3313.  8:30 - 10:00    RBBS-PC Record Layouts       How to Copyright Software --
  3314.                  (CALLERS, USERS, and         its protection and penalties
  3315.                   MESSAGES files)             for violation of copyrights.
  3316.  
  3317. 10:30 - 12:00    Multi-Port RBBS-PC           1986 Computer Privacy Act and
  3318.                  Systems -- actual            "computer trespass" laws at
  3319.                  experiences.                 the State level.
  3320.  
  3321. 12:00 - 1:30           Luncheon with a nationally known guest
  3322.                           speaker (any suggestions?)
  3323.  
  3324.  1:30 - 3:00     RBBS-PC "doors" and          Business Applications of
  3325.                  "doorware" explained.        Bulletin Board Systems
  3326.  
  3327.  3:30 - 5:00     Modems -- beyond 2400        The use of RBBS-PC in local,
  3328.                  baud.                        State, and Federal agencies.
  3329.  
  3330.  5:00 - 6:30           CONNECT TIME! -- Vendor Presentations
  3331.                                and Receptions
  3332.  
  3333. If   you  are with a manufacturer or organization that might be  interested
  3334. in   sponsoring  such a meeting,   work with your organization to  make  it
  3335. happen!  If  in  the  normal course of your business  contacts  you  see  a
  3336. potential  sponsor  of  such  a conference,  persuade  them  to  look  into
  3337. being  a sponsor.   I would be glad to talk with anyone about going forward
  3338. with this project.
  3339.  
  3340. If  you are interested in participating, write me at the following address:
  3341.  
  3342.          Tom Mack
  3343.          National SYSOP Conference
  3344.          39 Cranbury Drive
  3345.          Trumbull, Conneticut 06611
  3346.  
  3347. Please indicate
  3348.  
  3349.           1.  Which four sessions you would attend (in order
  3350.               of preference).
  3351.  
  3352.           2.  Any additional sessions you would be interested in.
  3353.  
  3354.           3.  Who would you want as a guest speaker at the
  3355.               luncheon.
  3356. RBBS-PC Version CPC17-1A                                    October 2, 1988
  3357. Copyright 1988 by D. Thomas Mack                            Page 169 of 232
  3358.  
  3359.           4.  Where you would like such a conference held
  3360.               from among the following five locations:
  3361.  
  3362.                        a.) Boston, Mass.
  3363.                        b.) Chicago, Ill.
  3364.                        c.) Houston, Texas
  3365.                        d.) San Francisco, Calif.
  3366.                        e.) Washington, D.C.
  3367.  
  3368.           5.  Your mailing address.
  3369.  
  3370.           6.  Telephone numbers you can be reached at (both voice
  3371.               and data).
  3372.  
  3373.           7.  And if you would be willing to be a "worker" as
  3374.               well as an attendee -- i.e. stuff envelopes, keep
  3375.               the mailing list, make hotel arrangements, etc.
  3376.  
  3377. My  greatest  fear is not that there will be fifty of us -- but that  there
  3378. will be 2,000 of us!  Whatever happens, it should be fun.
  3379.  
  3380.  
  3381. 29.   RBBS-PC, THE  LARGEST  SOFTWARE  HOUSE IN THE WORLD
  3382. ---------------------------------------------------------
  3383. RBBS-PC'S  "Userware" concept is founded on the principle stated in section
  3384. 1  --  "software which is shared becomes better than it was."   Relying  on
  3385. Federal  copyright protection, it is my firm belief that  RBBS-PC's  source
  3386. code  can be distributed without the risk of "loss of ownership"  (i.e.  it
  3387. becoming  "public domain").  In fact I think that all software  (commercial
  3388. and non-commercial) should be distributed as both compiled/executable files
  3389. and with their source code.  With one exception, RBBS-PC's copyrights  have
  3390. never  been  violated  --  this  is due  more  to  the  fact  that  RBBS-PC
  3391. enthusiasts  are ever-vigilant of RBBS-PC's copyrights rather than  due  to
  3392. any  lack  of  attempts to "sell" RBBS-PC or  RBBS-PC  look-alikes  to  the
  3393. unsuspecting public.
  3394.  
  3395. Incorporating  these new features and ideas into each new release of  RBBS-
  3396. PC,  making  sure that upward compatibility with earlier version of RBBS-PC
  3397. exists,  as well as maintaining RBBS-PC's copyright,  are all things that I
  3398. accept the responsibility for.   However,  it is RBBS-PC's "support  staff"
  3399. (i.e.  all  those  who  enhance RBBS-PC and share such  enhancements)  that
  3400. continues to make RBBS-PC a unique experiment in PC software.
  3401.  
  3402. No one should feel that the possibilities for RBBS-PC have even begun to be
  3403. exhausted.   In fact,  I am absolutely certain that even as this is written
  3404. innovative  enhancements are being created for RBBS-PC that I haven't  even
  3405. mentioned.   It  is my sincerest hope that if RBBS-PC continues to  succeed
  3406. within  the  IBM  PC industry in becoming  the  "bulletin-board  standard,"
  3407. software vendors will begin examining the reasons for RBBS-PC's success and
  3408. come to understand that:
  3409.  
  3410. 1.  The best form of software support is user support;
  3411.  
  3412. 2.  The best source for software enhancements are from it's users;
  3413. RBBS-PC Version CPC17-1A                                    October 2, 1988
  3414. Copyright 1988 by D. Thomas Mack                            Page 170 of 232
  3415.  
  3416.  
  3417. 3.  The best software continually adopts itself to users needs; and
  3418.  
  3419. 4.  The best way to minimize software development is to distribute
  3420.     source code;
  3421.  
  3422. Each  RBBS-PC  system operator has the opportunity to affect  what  RBBS-PC
  3423. becomes  in the future.  Many already have.  RBBS-PC continues to grow  and
  3424. expand because hundreds (and quite possibly thousands) of SYSOPs spend  the
  3425. time  and trouble not only to modify RBBS-PC to meet their needs, but  also
  3426. to  share  these  modifications with others.  I do not know  of  any  other
  3427. software  for  the  IBM  PC that has such  a  vast  number  of  programmers
  3428. supporting  it.  In section 1.3, I name more than 70 such  individuals  and
  3429. acknowledge  that there are a lot more!  With the structured  design  RBBS-
  3430. PC's  source code that the new BASIC compilers allowed, even  more  RBBS-PC
  3431. system  operators  are  invited to contribute.  Take the  time!   Make  the
  3432. difference!
  3433. RBBS-PC Version CPC17-1A                                    October 2, 1988
  3434. Copyright 1988 by D. Thomas Mack                            Page 171 of 232
  3435.  
  3436. APPENDIX A -- RBBS-PC Record Formats
  3437. ------------------------------------
  3438. This  appendix  is intended to document the record formats of some  of  the
  3439. more  significant records used within RBBS-PC.    As such,  it is  intended
  3440. more   as   a  "programmers'  guide" for those who wish to  write   RBBS-PC
  3441. utilities   rather  than  as  "user documentation."  No  record  format  is
  3442. "sacrosanct"   and  any  of them  may be  changed   in   future   releases.
  3443. However  such  changes  are  not  made  capriciously  and,   when  they are
  3444. made,   are  accompanied by  some  utility  program  that  will  allow  the
  3445. old files to be  reformatted  into  the  new  format.
  3446.  
  3447. The MESSAGES file contains the messages that have been left on RBBS-PC.  It
  3448. is  a random file with 128-byte records.   The first record of the MESSAGES
  3449. file  acts  as  RBBS-PC's "checkpoint"  record.   The  records  immediately
  3450. following  this first record are the RBBS-PC "node" records.   Each  "node"
  3451. record represents the activity/options associated with a particular copy of
  3452. RBBS-PC ("node").   There can be up to thirty-six copies of RBBS-PC running
  3453. simultaneously sharing the same set of static files.   Therefore there  can
  3454. be up to thirty-six "node" records following the "checkpoint" record.
  3455.  
  3456. The MESSAGES file has the following logical format:
  3457.  
  3458.            +----------------------------------------------+
  3459. Record #1  |  RBBS-PC "checkpoint" record                 |
  3460.            +----------------------------------------------+
  3461. Record #2  |  RBBS-PC "node" record for node # 1          |
  3462.            |                                              |
  3463.            |            up to                             |
  3464.            |                                              |
  3465.            |  RBBS-PC "node" record for node # 9          |
  3466.            |  RBBS-PC "node" record for node # 0          |
  3467.            |  RBBS-PC "node" record for node "A"          |
  3468.            |                                              |
  3469.            |            up to                             |
  3470.            |  RBBS-PC "node" record for node "Z"          |
  3471.            |                                              |
  3472.            +----------------------------------------------+
  3473.            |  First Record in Message portion of file     |
  3474.            +----------------------------------------------+
  3475.            |                                              |
  3476.            \  Message records that have been used         \
  3477.            \                                              \
  3478.            |                                              |
  3479.            +----------------------------------------------+
  3480.            |  Record available for next message           |
  3481.            +----------------------------------------------+
  3482.            |  Last record available in MESSAGES file      |
  3483.            +----------------------------------------------+
  3484. RBBS-PC Version CPC17-1A                                    October 2, 1988
  3485. Copyright 1988 by D. Thomas Mack                            Page 172 of 232
  3486.  
  3487. The  FIRST RECORD of the "MESSAGES" file acts as a "checkpoint" record  for
  3488. all  the  multiple  RBBS-PC's that may be sharing the  MESSAGES  and  USERS
  3489. files.  It contains information  critical  to  maintaining the integrity of
  3490. these two files.   The layout of RBBS-PC  Message  File  Record Number 1 is
  3491. as follows:
  3492.  
  3493. Position Length           Description
  3494.  
  3495.   1 -  8     8   Number assigned to the last message entered
  3496.   9 - 10     2   Security level user must have to be auto-added to a conference
  3497.  11 - 20    10   Current caller number
  3498.  21 - 56    36   --- RESERVED FOR FUTURE USE ----
  3499.  57 - 61     5   Count of the number of USER records used
  3500.  62 - 67     6   --- RESERVED FOR FUTURE USE ----
  3501.  68 - 74     7   Record Number where "messages" portion of the
  3502.                        MESSAGES file begins
  3503.  75 - 81     7   Record Number of the next available record in the
  3504.                        MESSAGES file where the next message may be written
  3505.  82 - 88     7   Record Number of the last record in the MESSAGES file
  3506.  89 - 95     7   Maximum number of messages allowed in the MESSAGES file
  3507.  96 -126    31   --- RESERVED FOR FUTURE USE ----
  3508. 127 -128     2   Maximum number of RBBS-PC's sharing this MESSAGES file
  3509.  
  3510. As a programming reference, line numbers 1900 and 23000 of the BASIC source
  3511. code  for  RBBS-PC.BAS  contains the code  for  reading  this  "checkpoint"
  3512. record.
  3513. RBBS-PC Version CPC17-1A                                    October 2, 1988
  3514. Copyright 1988 by D. Thomas Mack                            Page 173 of 232
  3515.  
  3516. Following  the first record of the MESSAGES file are from one to 36  "node"
  3517. records.   Each  "node"  record  contains information   critical   to   the
  3518. running of that copy of RBBS-PC associated with that "node".  The layout of
  3519. each RBBS-PC  "node" record is as follows:
  3520.  
  3521. Position Length          Description
  3522.  
  3523.   1 - 31    31  Name of last person on this copy of RBBS-PC
  3524.  32 - 33     2  SYSOP available indicator (true or false)
  3525.  34 - 35     2  SYSOP annoy indicator (true or false)
  3526.  36 - 37     2  SYSOP is to be on next indicator (true or false)
  3527.  38 - 39     2  Line printer available indicator (true or false)
  3528.  40 - 41     2  Door's availability indicator (true or false)
  3529.  42 - 43     2  Eight bit transmission indicator (true or false)
  3530.  44 - 45     2  Caller's baud rate indicator: -1 =   300 baud
  3531.                                               -2 =   450 baud
  3532.                                               -3 =  1200 baud
  3533.                                               -4 =  2400 baud
  3534.                                               -5 =  4800 baud
  3535.                                               -6 =  9600 baud
  3536.                                               -7 = 19200 baud
  3537.  46 - 47     2  Upper case only indicator (true or false)
  3538.  48 - 51     4  Number of bytes transferred (from external protocols)
  3539.    52        1  Batch transfer indicator (not zero = batch)
  3540.  53 - 54     2  Graphics indicator (0 = text, 1 = full ASCII, 2 = color)
  3541.  55 - 56     2  SYSOP indicator (-1 = SYSOP)
  3542.     57       1  Activity indicator (I=inactive, A=active)
  3543.  58 - 59     2  SNOOP on indicator (true or false)
  3544.  60 - 65     5  Baud that RBBS-PC talks to the modem at (single precision)
  3545.  65 - 67     3  Time user logged onto the system (HH:MM:SS)
  3546.  68 - 71     4  --- RESERVED FOR FUTURE USE ----
  3547.  72 - 73     2  Private door indicator (true or false)
  3548.    74        1  Type of transfer to external program:
  3549.                              0 = none
  3550.                              1 = download a file
  3551.                              2 = upload a file
  3552.                              3 = external registration program
  3553.    75        1  First letter of file transfer protocol
  3554.    76        1  --- RESERVED FOR FUTURE USE ----
  3555.  77 - 78     2  Last date, MM-DD-YY, that RBBS-PC exited to DOS (packed)
  3556.  79 - 85     7  --- RESERVED FOR FUTURE USE ----
  3557.  86 - 90     5  Last time, HH:MM, that RBBS-PC exited to DOS
  3558.  91 - 92     2  Reliable mode indicator (true or false)
  3559.  93 - 116   24  Work area that normally contains caller's City and State,
  3560.                 but when temporarily exiting RBBS-PC used as:
  3561.                 Position Length          Description
  3562.                  93 -100     8  Programmable user interface file name
  3563.                 101 -102     2  Local user indicator (true using local PC)
  3564.                 103 -104     2  Local user mode (true if using COM0)
  3565.                 105 -112     8  Name of current "conference" or "sub-board"
  3566.                 113 -116     4  --- UNUSED ----
  3567. 117 -118     2  Subsystem index of last subsystem user was in.
  3568. 119 -124     6  Month, day, and year, MMDDYY, external protocol was exited to
  3569. 125 -128     4  Hour and minute, HHMM, external protocol was exited to
  3570. RBBS-PC Version CPC17-1A                                    October 2, 1988
  3571. Copyright 1988 by D. Thomas Mack                            Page 174 of 232
  3572.  
  3573.  
  3574. As  a  programming  reference  and in order to see  how  these  fields  are
  3575. set/used  in the node records,  review the following line numbers in  RBBS-
  3576. PC.BAS  --  150, 200, 400, 420, 842, and 13555.  In  addition,  review  the
  3577. following subroutines as well:
  3578.  
  3579.               Source Code     Subroutine
  3580.              RBBSSUB2.BAS ---- WHOSON
  3581.              RBBSSUB3.BAS ---- FINDFUNC
  3582.                                SAVEPROF
  3583.                                READPROF
  3584.              RBBSSUB4.BAS ---- TIMEDOUT
  3585.  
  3586. A message within the messages file consists of a MESSAGE HEADER followed by
  3587. the text of the message.   The RBBS-PC Message File "message header" record
  3588. layout is as follows:
  3589.  
  3590. Position Length        Description
  3591.  
  3592.     1        1  Contains an "*" for read-only messages, blank otherwise
  3593.   2 -  5     4  Message number of this message
  3594.   6 - 36    31  The name of the person the message is from
  3595.  37 - 58    22  The name of the person to whom the message is sent
  3596.  59 - 66     8  Time of day that the message was sent (HH:MM:SS)
  3597.  67 - 67     1  ---- RESERVED FOR FUTURE USE ----
  3598.  68 - 75     8  Date the message was sent (MM-DD-YY)
  3599.  76 -100    25  Subject of the message
  3600. 101 -115    15  Password for the message (if any)
  3601. 116 -116     1  "Active" message indicator = hex 225
  3602.                 "Killed" message indicator = hex 226
  3603. 117 -120     4  Number of 128-byte records for this message --
  3604.                     including the the "message header" record.
  3605. 121 -122     2 Minimum security level to read message
  3606. 123 -125     3 Date (packed) the message was last read (MM/DD/YY)
  3607. 126 -128     3 Time (packed) the message was last read (HH:MM:SS)
  3608.  
  3609. As a programming reference,  review lines 3405, 3460, 3530, and 8076 of the
  3610. BASIC source code for RBBS-PC.BAS to see how these fields are set.
  3611.  
  3612. Each  record  following the MESSAGE HEADER record is a MESSAGE TEXT  record
  3613. and  consists  of 128 characters.   Each of these  128-byte  message  text"
  3614. records contains the message text.   The end of each line in the message is
  3615. followed   by   an  RBBS-PC  "end-of-line"  indicator which  is  equal   to
  3616. an  ASCII 227.   This allows RBBS-PC to "pack" multiple message lines in  a
  3617. single 128-byte record.
  3618.  
  3619. The   USERS  file contains information unique for each  RBBS-PC  user   who
  3620. logs on.   It is a random file with 128-byte records.  The layout  of  each
  3621. users record within the USERS file is as follows:
  3622. RBBS-PC Version CPC17-1A                                    October 2, 1988
  3623. Copyright 1988 by D. Thomas Mack                            Page 175 of 232
  3624.  
  3625. Position Length           Description
  3626.  
  3627.   1 - 31    31  Users first and last name (separated by a blank).
  3628.  32 - 46    15  Users password for logon.
  3629.  47 - 48     2  Users security level (permanent).
  3630.  49 - 62    14  Users logon options (see detail breakdown below).
  3631.  63 - 86    24  City and state from which the user is calling.
  3632.  87 - 89     3  ---- RESERVED FOR FUTURE USE ----
  3633.  90 - 93     4  Number of files downloaded today
  3634.  94 - 97     4  Number of bytes downloaded today
  3635.  98 -101     4  Number of bytes downloaded (ever).
  3636. 102 -105     4  Number of bytes uploaded (ever).
  3637. 106 -119    14  Date and time the user was last on (MM-DD-YY HH:MM).
  3638. 120 -122     3  Date the user last listed a directory.
  3639. 123 -124     2  Number of files downloaded (ever).
  3640. 125 -126     2  Number of files uploaded (ever).
  3641. 127 -128     2  Elapsed time the user was on for day of last access.
  3642.  
  3643. As  a programming reference,  line 9400 of the BASIC source code for  RBBS-
  3644. PC.BAS contains the code for opening this file.   The field used to  record
  3645. the users logon options, positions 49 through 62, is utilized as follows:
  3646.  
  3647. Position Length           Description
  3648.  
  3649.  49 - 50     2   Number of times the user has logged on
  3650.  51 - 52     2   Last message number read by the user
  3651.     53       1   Protocol Preference (X, A, M, C, I, Y, G, K, W, blank)
  3652.     54       1   Graphics 0-text, 1-graphics, 2-color
  3653.  55 - 56     2   Margin length for this users messages
  3654.  57 - 58     2   Bit Flag -- this 16-bit field is denoted by bit 0
  3655.                  being the least significant (i.e. right-most bit)
  3656.                  and bit 15 being the most significant (i.e. left-
  3657.                  most bit).  These "bit flags" have the following
  3658.                  meanings (0=off, 1=on):
  3659.  
  3660.                        BIT    Definition (what ON means)
  3661.                         0     Bell prompts
  3662.                         1     "Expert" mode
  3663.                         2     Nulls
  3664.                         3     Upper case only
  3665.                         4     Line feeds
  3666.                         5     Skip old bulletins
  3667.                         6     Check new files on logon
  3668.                         7     Use autodownload
  3669.                         8     Required questionnaire answered
  3670.                         9     Mail Waiting
  3671.                        10     Highlighting enabled
  3672.                        11     "TurboKey" enabled
  3673.                       12-15   RESERVED FOR FUTURE USE
  3674.  59 - 60     2   Date subscription began
  3675.     61       1   Page length to use for this users terminal
  3676.     62       1  ------- RESERVED FOR FUTURE USE ---------
  3677.             ---
  3678.             14
  3679. RBBS-PC Version CPC17-1A                                    October 2, 1988
  3680. Copyright 1988 by D. Thomas Mack                            Page 176 of 232
  3681.  
  3682. APPENDIX B -- RBBS-PC in a DESQview Environment
  3683. -----------------------------------------------
  3684. Before  you continue,  make certain you have read and thoroughly understand
  3685. the instruction manual provided with your copy of DESQview.
  3686.  
  3687. 1.  Modifications to DOS CONFIG.SYS and RBBS-PC batch files:
  3688. ------------------------------------------------------------
  3689. The first step in using DESQview with RBBS-PC is setting up your CONFIG.SYS
  3690. file.   Files=25 is probably the most critical value.  This value tells DOS
  3691. how  many files may be open at the same time.   This value may need  to  be
  3692. increased if you intend to run more than 2 nodes of RBBS-PC.
  3693.  
  3694. A typical CONFIG.SYS file should include the following:
  3695.  
  3696.      files=25
  3697.      buffers=25
  3698.      (device=ansi.sys is not required when using DESQview)
  3699.  
  3700. If  you  intend to use two or more nodes of RBBS-PC,  a batch file will  be
  3701. required for each node.  These batch files will eventually be executed from
  3702. the DESQview "Open Window" menu and will load each node of RBBS-PC.
  3703.  
  3704. Contents of RBBS1.BAT                   Contents of RBBS2.BAT
  3705.  
  3706. if exist rctty1.bat del rctty1.bat      if exist rctty2.bat del rctty2.bat
  3707. watchdg1 off                            watchdg2 off
  3708. rbbs-pc.exe 1                           rbbs-pc.exe 2
  3709. watchdg1 on                             watchdg2 on
  3710. if exist rctty1.bat rctty1.bat          if exist rctty2.bat rctty2.bat
  3711. rbbs1.bat                               rbbs2.bat
  3712.  
  3713. In  the above examples,  the program WATCHDOG is being used to monitor  for
  3714. carrier when the SYSOP has dropped into DOS remotely or a user has opened a
  3715. Door.   For example, WATCHDG1 monitors COM1 and WATCHDG2 monitors COM2.  If
  3716. you aren't using WATCHDOG, leave these commands out of your batch files.
  3717.  
  3718. 2. What to Tell RBBS-PC's "CONFIG" Utility
  3719. ------------------------------------------
  3720. When  using DESQview you will need to change CONFIG parameter 162 that  you
  3721. are running under DESQview.
  3722.  
  3723. 3. Running Multiple Nodes (or copies) of RBBS-PC
  3724. ------------------------------------------------
  3725. If you intend to use two or more nodes of RBBS-PC,  you will need to change
  3726. a few additional parameters with the RBBS-PC "CONFIG" utility.   When using
  3727. multiple  nodes  of  RBBS-PC you will be using a .DEF file for  each  node.
  3728. Each  node will have a .DEF file named RBBS?PC.DEF where ?  represents  the
  3729. number  of the node.   These are created by answering YES to  the  question
  3730. "Will  you  be  running multiple copies of RBBS-PC (YES or NO)?"  when  the
  3731. "CONFIG"  utility first loads.   If you prefer to use the  parameters  from
  3732. your  existing single node RBBS-PC.DEF file,  you may simply copy that file
  3733. to the new .DEF files before you run the "CONFIG" utility.   After  loading
  3734. the "CONFIG" utility,  it will ask you "To which copy of RBBS-PC will these
  3735. options apply (1 to 36)?" and you should respond with node number (or copy)
  3736. RBBS-PC Version CPC17-1A                                    October 2, 1988
  3737. Copyright 1988 by D. Thomas Mack                            Page 177 of 232
  3738.  
  3739. you want to configure.
  3740.  
  3741. Here are the parameters that will have to be changed for each node of RBBS-
  3742. PC you intend to use.  This example is for a system with two nodes.
  3743.  
  3744.                               Node DEF file--> RBBS1PC.DEF    RBBS2PC.DEF
  3745. Default Configuration Parameters               Parameters     Parameters
  3746. --------------------------------               -----------    -----------
  3747. Communications port to be used by RBBS-PC ---- COM1           COM2
  3748. File RBBS builds dynamically to open a 'door'- D:RCTTY1.BAT   D:RCTTY2.BAT
  3749. When a 'door' closes, file to re-invoke RBBS - D:RBBS1.BAT    D:RBBS2.BAT
  3750. Maximum number of concurrent RBBS-PC's  ------- 2              2
  3751.  
  3752. These  are  in CONFIG as parameter 221, parameter 103, parameter  104,  and
  3753. parameter  161 (respectively).  Please note that the  preceding  parameters
  3754. are  located  on different pages of the "CONFIG"  utility.
  3755.  
  3756. 4. DESQview Setup Default Settings
  3757. ----------------------------------
  3758. The  first  step in setting up DESQview for use with RBBS-PC is  specifying
  3759. the default settings for DESQview.  DESQview has a program called SETUP.EXE
  3760. that you should run.   After the SETUP program loads,  press RETURN for the
  3761. Advanced Setup Procedure followed by a "P" for Performance defaults.   Here
  3762. is an example of the settings you should use.
  3763.  
  3764.       Advanced Setup: Performance
  3765.          Task Processing Time (clock ticks)
  3766.                   Foreground:    4           <-----
  3767.                   Background:    3           <-----
  3768.          Memory Usage (in K bytes)
  3769.               DESQview Scripts:     1
  3770.               Playback Scripts:     1
  3771.               Learn Scripts:        1
  3772.               System Memory:       12
  3773.          High Speed Comm?  (Y/N):  Y         <-----
  3774.          Jump Scroll?      (Y/N):  N
  3775.          Swap to Disk?     (Y/N):  N
  3776.  
  3777. The arrows above refer to changes from DESQview's default settings.   NEVER
  3778. indicate more clock ticks for Background processing than you are using  for
  3779. the Foreground processing.  DESQview will automatically increase the amount
  3780. of  Background  clock ticks whenever there is little demand for  Foreground
  3781. processing.   This  is the case when running RBBS-PC in the background  and
  3782. doing  word processing or a similar task in the foreground.   This  feature
  3783. cannot function properly if the Background clock ticks are set higher  than
  3784. the  Foreground  clock ticks.   Setting the High Speed Comm default to  YES
  3785. will make communications interrupts the highest priority.   This will  keep
  3786. file  transfers  going smoothly for your callers while you are doing  other
  3787. tasks or operating multiple nodes of RBBS-PC.
  3788. RBBS-PC Version CPC17-1A                                    October 2, 1988
  3789. Copyright 1988 by D. Thomas Mack                            Page 178 of 232
  3790.  
  3791. 5. Adding RBBS-PC to DESQview's  "Open Window" Menu
  3792. ---------------------------------------------------
  3793. Refer to the section "Adding Your Own Program" in the DESQview manual.  You
  3794. will need to "Add a Program" for each node of RBBS-PC you intend to operate
  3795. on your system.   You may name the programs N1,  N2, etc.  N1 will load the
  3796. batch file RBBS1.BAT,  N2 will load RBBS2.BAT and so on.  Use the following
  3797. settings for each node (or copy) of RBBS-PC you install.
  3798.  
  3799.                                Add a Program
  3800.  
  3801. Program Name . . . . . .  RBBS-PC  [node 1]    Keys to use on Open Menu N1
  3802. Command to Start Program  RBBS1.BAT
  3803. Path to Data Files . . .  D:\RBBS  (subdirectory RBBS1.BAT is located in)
  3804. Memory Size (in K) . . .  288  (see "Memory Considerations" below)
  3805. Window Position  . . . .  Row   0   Column   0   Height  25   Width  80
  3806. Script Buffer Size (in bytes)   1000
  3807. Options:
  3808.             OFF                 ON---> Displays graphics information
  3809.             OFF                 ON---> Uses its own colors
  3810.             OFF                 ON---> Allows keyboard type-ahead
  3811.             OFF                 ON---> Allows script type-ahead
  3812.             OFF                        OFF
  3813.  
  3814. To toggle an option ON or OFF,  move the cursor to the option with the  TAB
  3815. key  and press the + key to the right of the numeric pad.   An option is ON
  3816. whenever it is highlighted on your screen.   Only the first four options on
  3817. the right hand side should be highlighted before pressing RETURN to end the
  3818. "Add  a  Program"  session.  Leaving the  "Displays  graphics  information"
  3819. option  set to OFF (not highlighted) may cause your system to lock-up  when
  3820. you attempt to open another window.
  3821.  
  3822. 6.  Memory Considerations
  3823. -------------------------
  3824. Current  versions of DESQview require a little under 162k of your  system's
  3825. memory.   This  leaves  you with about 478k to operate RBBS-PC on a  system
  3826. with 640k.   Specify a minimum window size of 270k for each node of RBBS-PC
  3827. you  intend to operate.   If you choose to use RBBS-PC's external  protocol
  3828. drivers for file transfers you can use SHELL or EXIT.   SHELL requires 370k
  3829. as  the minimum partition size.   It is necessary to use EEMS memory to run
  3830. two copies of RBBS-PC in the same machine.
  3831.  
  3832. If  you use the second node for SYSOP duties only,  the above configuration
  3833. should  work  nicely.   When  using the second node  for  SYSOP  duties  an
  3834. additional  modem and an additional RS-232 interface is not required -- all
  3835. you  have to do is use CONFIG to set up the .DEF file for the node you  are
  3836. going to use for SYSOP duties as using COM0.  Failure to do so will prevent
  3837. your second node from loading properly.
  3838.  
  3839. 7.  Expanded Memory
  3840. -------------------
  3841. If  you are using an "Expanded Memory" board that allows more than 640k  to
  3842. be used for programs, the constraints discussed in the previous section may
  3843. not  apply.   Specify  a window size of 370K for each node of  RBBS-PC  and
  3844. invoke  the  external protocol drivers by  SHELLing.   For  information  on
  3845. RBBS-PC Version CPC17-1A                                    October 2, 1988
  3846. Copyright 1988 by D. Thomas Mack                            Page 179 of 232
  3847.  
  3848. running programs in expanded memory,  refer to the manuals for DESQview and
  3849. your particular memory board.
  3850.  
  3851. 8. How to AUTOEXEC RBBS-PC From DESQview
  3852. ----------------------------------------
  3853. Refer  to  the section "Learn:  DESQview's Keystroke Macro Feature" in  the
  3854. DESQview manual.  A script assigned to the ! key (on the DESQview menu) has
  3855. a  special  meaning.   It is performed at the time you start  up  DESQview,
  3856. immediately  after  the DESQview menu appears.   This is called  a  STARTUP
  3857. SCRIPT.   You  should "Learn" the Startup Script with no windows  open  and
  3858. with the DESQview menu displayed to be sure it will play back properly. Use
  3859. this  particular  script to load N1,  N2,  etc.  of RBBS-PC.   If you  load
  3860. DESQview  from  your AUTOEXEC.BAT file,  RBBS-PC will  load  from  DESQview
  3861. automatically.   This can be handy if there is a power outage while you are
  3862. away  and no one is around to re-load RBBS-PC when the electricity returns.
  3863. Finally,  it's  suggested that you open the window(s) for RBBS-PC prior  to
  3864. opening a window for any other application software.
  3865.  
  3866. 9. RBBS-PC Technical Support For DESQview
  3867. -----------------------------------------
  3868. The  preceding  configuration  has  been given  to  every  SYSOP  that  has
  3869. contacted our bulletin board system regarding DESQview usage with  RBBS-PC.
  3870. It has, in every case, solved their problems with DESQview and RBBS-PC.  If
  3871. you  follow  these instructions and continue to have  difficulties,  please
  3872. contact us and we will do our best to help out.
  3873.  
  3874.                                                John Taylor
  3875.                                                SYSOP, Indiana On-Line (tm)
  3876.                                                (812) 332-RBBS /data
  3877.                                                (812) 332-1110 /voice
  3878. Additional Notes:
  3879.  
  3880. Two Quarterdeck utilities, STDERR.COM and LDFILTER.COM are distributed with
  3881. RBBS-PC.
  3882.  
  3883. STDERR.COM should be started up in your autoexec.bat file when you bring up
  3884. DESQview.   STDERR.COM  was  written  by  Quarterdeck  Office  Systems   to
  3885. compensate DOS' inability to redirect the standard error output to the same
  3886. device that the standard output device had been redirected.  If are running
  3887. something  remotely and an error occurs, STDERR.COM allows the error to  be
  3888. displayed at the remote user's end and not simply on the PC that is running
  3889. RBBS-PC under DESQview.
  3890.  
  3891. LDFILTER.COM should be started up every time you open a window in DESQview.
  3892. LDFILTER.COM  was written by Quarterdeck Office Systems to  compensate  for
  3893. the memory mismanagement of the BASIC compilers.  If you try to "SHELL"  to
  3894. an external routine the error that there is not enough memory to SHELL with
  3895. is  issued.  LDFILTER.COM prevents this error condition by  preventing  the
  3896. code generated by the BASIC compilers from mis-managing memory.
  3897. RBBS-PC Version CPC17-1A                                    October 2, 1988
  3898. Copyright 1988 by D. Thomas Mack                            Page 180 of 232
  3899.  
  3900. APPENDIX C -- RBBS-PC in a MultiLink Environment
  3901. ------------------------------------------------
  3902. RBBS-PC  CPC17-1A  has been tested under Multilink versions 4.0,  3.02  and
  3903. earlier.
  3904.  
  3905. CONFIG's  allows  the SYSOP to tell RBBS-PC that it will be  running  in  a
  3906. MultiLink  environment.   This  is  ESSENTIAL when  running  RBBS-PC  under
  3907. MultiLink.  CONFIG allows the SYSOP to specify what MultiLink terminal type
  3908. code to pass to MultiLink whenever RBBS-PC exits to DOS via a "Door".  Page
  3909. 15  of  the  MultiLink documentation specifies the  various  terminal  type
  3910. codes.   When a SYSOP indicates that "doors" are available  (via  parameter
  3911. 101 of CONFIG) and RBBS-PC is to be run under MultiLink, the SYSOP is asked
  3912. to  select the MultiLink terminal type that RBBS-PC is to inform  MultiLink
  3913. to expect when MultiLink is given control of the "Door."
  3914.  
  3915. RBBS-PC  has  been tested running two copies of RBBS-PC under DOS  3.2  and
  3916. MultiLink Advanced (versions 3.02 and 4.0) on an IBM PC which had a mother-
  3917. board  containing  256K and an AST Comboplus board with 384K  (a  total  of
  3918. 640K).   However, to do this RBBS-PC must be re-compiled (see Appendix  Y).
  3919. The  "autoexec"  file was named AUTOEXEC.BAT and  contained  the  following
  3920. parameters
  3921.  
  3922.                     MLINK /9,266/9,266
  3923.  
  3924. NOTE! ==>  CPC16-1A must be recompiled with C:512 in order to run in a 268K
  3925.            partition  under MultiLink.  As released, CPC16-1A  is  compiled
  3926.            with  the parameter C:4096 which requires a MultiLink  partition
  3927.            of  270K.   Of course, to SHELL to the external  protocols,  the
  3928.            partitions must be about 440K.
  3929.  
  3930. It  is  important to avoid doing several things when running RBBS-PC  under
  3931. MultiLink.   First,  NEVER RUN MLSLICE!   This is because MLSLICE hangs off
  3932. the PC's timer chain and the code generated by the BASIC compilers violates
  3933. all  sorts  of  DOS conventions whenever it is utilizing the  PC's  speaker
  3934. (i.e. as when RBBS-PC pages the SYSOP).  In so doing, the code generated by
  3935. the  BASIC  compilers  is incompatible with programs  that  do  follow  DOS
  3936. conventions.
  3937.  
  3938. Second,  NEVER use the DOS "PRINT" command!  This is because there is a bug
  3939. in  the code generated by the BASIC compiler that causes the system to hang
  3940. if a compiled BASIC program is running and DOS is printing something.  This
  3941. bug  has  been corrected in the BASIC compiler that was  used  to  generate
  3942. RBBS-PC.EXE  that is distributed.   However the version of RBBS-PC that you
  3943. get (if other than from CPCUG) may not have this bug corrected.   This is a
  3944. bug that occurs independent of running MultiLink.
  3945.  
  3946. Third,  check your Intel 8088 chip's copyright date by opening up the cover
  3947. and  locating the 8088 chip.  If the copyright date printed on the chip  is
  3948. 1978 (i.e. pre 1981), REPLACE THE INTEL 8088 CHIP!!!!!  The 1978 Intel 8088
  3949. chip  had  several  design flaws that will cause your  system  to  lock  up
  3950. occasionally.   One of these design flaws allowed interrupts to occur while
  3951. stack  switching  (something that will happen running  multiple  partitions
  3952. doing disk I/O under any multi-tasking DOS add-on such as MultiLink or even
  3953. IBM's TopView).   Don't blame MultiLink for the flawed Intel 8088 chip that
  3954. RBBS-PC Version CPC17-1A                                    October 2, 1988
  3955. Copyright 1988 by D. Thomas Mack                            Page 181 of 232
  3956.  
  3957. IBM  put  in  your PC!   It costs about $70 ($35 for the chip and  $35  for
  3958. labor)  and  takes  about  15 minutes to have  the  1978  Intel  8088  chip
  3959. replaced.   In fact, if you are going to replace your 1978 Intel 8088 chip,
  3960. you might consider the newer (and 5% to 10% faster) NEC V20 chip.
  3961.  
  3962. Fourth,  DON'T  USE "BUFFERS=" in the CONFIG.SYS for DOS!   This may be  an
  3963. "old  wives  tale,"  but I am convinced (but can't prove)  that  there  are
  3964. incompatibilities between the code the BASIC compiler generates,  DOS's use
  3965. of "BUFFERS=", and MultiLink.
  3966.  
  3967. Fifth,  DON'T  ALLOW MNP PROTOCOL for file transfers.   An  incompatibility
  3968. exists  between  the Software Link,  Inc.'s Multi-Link and  MICROCOM's  MNP
  3969. software.   Until  the  respective vendor's resolve this,  don't  use  both
  3970. products concurrently!
  3971.  
  3972. Sixth, RBBS-PC will only run in Background 1 or Background 2.
  3973.  
  3974. Finally,  DON'T  RUN  PROGRAMS THAT USE THE BASIC "RUN-TIME"  LIBRARY,  and
  3975. always invoke the BASIC interpreter with the command BASIC /C:0!  Both  the
  3976. BASIC interpreter's handling of communications ports and BASRUN.EXE seem to
  3977. violate enough DOS conventions to "lock up" MultiLink.
  3978.  
  3979. When  RBBS-PC  is told that it is running in a  MultiLink  environment  via
  3980. CONFIG parameter 162, RBBS-PC will automatically do the following:
  3981.  
  3982.     1.  When re-cycling, it will automatically enque on the correct
  3983.         MultiLink resource ID for the communications port defined
  3984.         in CONFIG for that copy of RBBS-PC to use.
  3985.     2.  When re-cycling, it will automatically tell MultiLink that
  3986.         this is a type "9" partition (i.e. MultiLink is NOT to handle
  3987.         the communications port).
  3988.     3.  When exiting to DOS via a "door", RBBS-PC will automatically
  3989.         tell MultiLink to start handling the communications for this
  3990.         partition (COM1 or COM2) and what type of terminal was defined
  3991.         in CONFIG that would be on the communications port (MultiLink
  3992.         terminal types 1 through 12).
  3993.  
  3994. Manually,  it  is  possible to bring up and run one copy of  RBBS-PC  under
  3995. MultiLink.   The  only way that I have been able to bring up two copies  of
  3996. RBBS-PC  successfully  (one copy running in each of two partitions) was  to
  3997. bring  them up via AUTOEXE1.BAT and AUTOEXE2.BAT files.   It  appears  that
  3998. during  the MultiLink initialization sequence when the partitions are being
  3999. established  and the "AUTOEXEx.BAT" files are being invoked that  MultiLink
  4000. doesn't  get "confused" and lock up with a second copy of RBBS-PC  present.
  4001.  
  4002. If  using   Multi-Link to  run multiple  nodes in  the same  machine  under
  4003. DOS 3.x or above,  it is recommended that the SYSOP execute SHARE.COM prior
  4004. to starting multiple RBBS-PC nodes under Multi-Link and specify FILES=20 in
  4005. the CONFIG.SYS file.
  4006. RBBS-PC Version CPC17-1A                                    October 2, 1988
  4007. Copyright 1988 by D. Thomas Mack                            Page 182 of 232
  4008.  
  4009. APPENDIX D -- RBBS-PC in a CORVUS Network
  4010. -----------------------------------------
  4011. RBBS-PC  uses  the  standard Corvus SEMAPHORES  when  sharing  files  among
  4012. multiple  copies of RBBS-PC within a Corvus Network.   This is accomplished
  4013. via  the  MS-DOS utility driver,  DRIVEC2,  that Corvus supplies  with  its
  4014. network.
  4015.  
  4016. On a multi-server Corvus network (i.e. where there are multiple shared hard
  4017. disk  drives)  all PC's that are running RBBS-PC within the Corvus  network
  4018. MUST  have their "home volume" on the same server.   Corvus maintains  each
  4019. PC's  semaphores  on that PC's "home volume".   In order to  "share"  files
  4020. among  various PC's in a Corvus network,  all the PC's that  are  "sharing"
  4021. must  also  be looking at the same set of semaphores.   In a  single-server
  4022. Corvus network this is not a consideration because there is only one  "home
  4023. volume."
  4024.  
  4025. RBBS-PC  has  been only tested with the Corvus CONSTELLATION  II  interface
  4026. cards  and software that Corvus provides for the IBM  PC.   RBBS-PC  should
  4027. work  with  both Corvus' older "flat cable" network as well as their  newer
  4028. OMNINET  twisted  wire  pair cable network when  running  CONSTELLATION  II
  4029. software.   It  is  entirely  possible that RBBS-PC would  work  with  some
  4030. combination  of  both  Corvus network types as long as  they  were  running
  4031. CONSTELLATION II software.
  4032.  
  4033. It  should  be self-evident that every PC within a Corvus  network  running
  4034. RBBS-PC  must have a Corvus interface card.   If multiple copies of RBBS-PC
  4035. are  running in a Corvus network that is using older Corvus software  (i.e.
  4036. NOT running the CONSTELLATION II software),  the interface cards  must,  at
  4037. least, all have the CONSTELLATION II ROM.
  4038.  
  4039. RBBS-PC is tested only to run on IBM PC's within a Corvus network.  Clearly
  4040. an  IBM "clone" that can run IBM's DOS,  RBBS-PC.EXE,  and is supported  by
  4041. Corvus' network should also work.   However, such configurations (and their
  4042. many  variations) are not part of the environment within which  RBBS-PC  is
  4043. tested and supported.
  4044. RBBS-PC Version CPC17-1A                                    October 2, 1988
  4045. Copyright 1988 by D. Thomas Mack                            Page 183 of 232
  4046.  
  4047. APPENDIX E -- RBBS-PC in an ORCHID PCnet NETWORK or AST PCnet NETWORK
  4048. ---------------------------------------------------------------------
  4049. RBBS-PC  can  be  implemented  on an Orchid  PCnet  or  AST  PCnet  Network
  4050. environment.   It  is  assumed  that  the  necessary  network  hardware  is
  4051. installed   correctly.   The  following  discussion   describes  a  network
  4052. currently  in operation and receiving  more than 1000 calls  per  week   on
  4053. two  telephone  lines for the Computer Connection of Virginia  Beach.   The
  4054. hardware and software was:
  4055. 1.  80286 based SERVER with 512K running at up to 9 mhz with:
  4056.        Parallel-Serial Board on the AT with a serial port addressed as COM1
  4057.        AST Rampage memory board configured with 2 megs of expanded memory
  4058.        Monochrome Adapter with parallel printer port
  4059.        PC Net adapter addressed as 0080 with default jumpers
  4060.        Hard disk that can be divided into multiple volumes
  4061.        Single High Density [1.2 meg] floppy disk
  4062.        External modem and cable connected to COM1
  4063. 2.  8088 based WORKSTATION with 640K running at up to 8 mghz with:
  4064.        multifunction board with COM1, a clock, and parallel port
  4065.        PC Net adapter addressed as 0011 with default jumpers
  4066.        Color Graphics Adapter
  4067.        Two 360K floppy drives
  4068.        External modem and cable connected to COM1
  4069. 3. Software -
  4070.        Operating System = DOS 3.1 network-wide
  4071.        Network Software = Orchid PC Net 3.0a
  4072.        Disk Caching Software = Orchid CACHE.EXE version 2.2
  4073.        RAM Disk = AST FASTDISK
  4074. Installation procedures ---
  4075. 1. Preliminaries
  4076.    1. Backup hard disk, system and network disks.
  4077.    2. If your hardware is different, be sure to resolve INTerrupt conflicts
  4078.       with the PC NET adapters.  Disable second serial or parallel ports in
  4079.       all PC's.
  4080. 2. Using the WORKSTATION, boot with DOS 3.1 then
  4081.    1. Create  the SERVER and WORKSTATION boot disks with SPCGEN and  UPCGEN
  4082.       commands, respectively.
  4083.    2. Copy  device  drivers for the hard disk, for the RAM  disk,  and  for
  4084.       Expanded  and  Extended memory (REMM.SYS and REX.SYS) to  the  SERVER
  4085.       boot disk as well as CACHE.EXE.  Place the following CONFIG.SYS  file
  4086.       for the SERVER:
  4087.       device=spc.com                       <-- Network SERVER driver
  4088.       device=REMM.SYS                      <-- Expanded memory driver
  4089.       device=rex.sys 1024                  <-- 1MB Emulated extended memory
  4090.       device=fastdisk.sys 1024 512 128 /e  <-- RAM disk in extended memory
  4091. 3. Place the following commands in the AUTOEXEC.BAT file:
  4092.       disk13                        <-- Network for floppy disk use
  4093.       cache [drives] d=128 x=896 /r <-- 128K cache of DOS memory & 896K  of
  4094.                                     EMS memory for SERVER drives to  reduce
  4095.                                     the number of disk accesses
  4096.       spcbio 138023                 <-- Tell network of interrupts used
  4097. 4. Using the SERVER, boot with the newly created SERVER boot disk
  4098.    1. Run the network program SPCINST.
  4099.    2. After  naming all the available drives on the server, assign all  the
  4100.       hard  drive volumes to the WORKSTATION # 11 and them  all  READ/WRITE
  4101. RBBS-PC Version CPC17-1A                                    October 2, 1988
  4102. Copyright 1988 by D. Thomas Mack                            Page 184 of 232
  4103.  
  4104.       capable.  "Remote Execution" need not be enabled.
  4105.    3. The  SERVER  will  then reboot and the network will  have  the  final
  4106.       configuration as outlined above.
  4107. 5. Boot the WORKSTATION with the newly created WORKSTATION boot disk and:
  4108.    1. Add FILES = 16 to the CONFIG.SYS file for the WORKSTATION.
  4109.    2. Use the network program UPCINST to communicate with SERVER # 80.
  4110.    3. "Map" in all the drives that were assigned by the SERVER.
  4111.    4. The WORKSTATION will reboot so the changes can take effect.
  4112.    5. After the WORKSTATION reboots, do a DIR C: to see if the directory on
  4113.       the  SERVER hard disk can be read.  If not, recheck  cables,  plug-in
  4114.       cards  for INTerrupt conflicts, and network adapter cards  to  verify
  4115.       all  jumper  settings.  If necessary, run the  SELFTEST  and  NETTEST
  4116.       diagnostics  for  the network adapter cards.  Also,  demonstrate  the
  4117.       ability to copy files across the network to and from the server  then
  4118.       verify the transfer using the COMP command.
  4119. 6. Assuming that you are able to do a DIR across the network and copy files
  4120.    to and from the SERVER, you are then ready to run CONFIG.EXE of RBBS-PC.
  4121.    Run  CONFIG  and  confirm use of RBBS-PC  in  a  multinode  environment.
  4122.    Assign the number 1 Node to your SERVER.
  4123.    1. Assign all welcome, bulletin, help and menu files to the SERVER's RAM
  4124.       drive so the workstation may access them in the fastest way.
  4125.    2. Store FILESEC, PASSWRDS, MESSAGES, USERS and other sensitive files in
  4126.       a  non-downloadable  but sharable drive volume on the SERVER  so  the
  4127.       workstation may have read/write access to them.
  4128.    3. Select   a   location  for  the  SERVER's  CALLERS   file   and   the
  4129.       WORKSTATION's.
  4130.    4. Reflect the node numbers in the BATch file names, e.g. RCTTY1.BAT and
  4131.       RCTTY2.BAT,  RBBS1.BAT  and RBBS2.BAT.
  4132.    5. Choose PCNET as the environment that you are running RBBS-PC under.
  4133.  
  4134. Other Considerations --
  4135. VDISK or Extended memory, which is not-emulated memory, should not be  used
  4136. on   the  SERVER  but  can  be  used  on  the  Workstation.   The   network
  4137. configuration most likely to remain operating with very few problems is DOS
  4138. 3.1,  Orchid  3.0a  PC  NET  software and  CACHE.EXE  version  2.2  and  an
  4139. Expanded/Extended  memory combination using the  new  Lotus/Intel/Microsoft
  4140. EMS memory boards.
  4141.  
  4142. Two nodes can be efficiently set up using the SERVER in non-dedicated  mode
  4143. but  the danger is that if the SERVER locks up, the whole system locks  up.
  4144. The sample PC Net system is set up in this fashion but it is an  economical
  4145. approach  to a two node system which has been functioning quite  well  with
  4146. minimal problems.  Do not run software on the SERVER that is known to cause
  4147. problems  especially memory resident utilities.  There is a  potential  for
  4148. files being CROSS-LINKED in any read/write sharable environment.   Frequent
  4149. backups are to be very strongly recommended.
  4150.  
  4151. Because  of  wide  variety of hardware combinations  and  possible  network
  4152. permutations,  the  above  is  intended ONLY as general  guidelines  to  be
  4153. followed when installing RBBS-PC on your Orchid network.
  4154.  
  4155. Rob Cecchino
  4156. Sysop, Computer Connection
  4157. (804) 481-1824 at 1200/2400 for assistance.
  4158. RBBS-PC Version CPC17-1A                                    October 2, 1988
  4159. Copyright 1988 by D. Thomas Mack                            Page 185 of 232
  4160.  
  4161. APPENDIX F -- RBBS-PC in an Alloy PC-SLAVE/16 Environment
  4162. ---------------------------------------------------------
  4163. The   PC-Slave  is  an  IBM  compatible  computer  on  an  expansion   card
  4164. manufactured  by Alloy Computer Products,  Inc.  of Framingham,  MA  01701.
  4165. Their telephone number is (617) 875-6100.  Adding PC-Slaves converts the PC
  4166. from a single CPU to a multiple CPU,  all under the control of the main  or
  4167. host  PC.    Each slave can run RBBS-PC (or other programs).
  4168.  
  4169. A. THE ADVANTAGES:  Compared to other means for running multiple RBBS-PC's,
  4170. the advantages of slaves are:
  4171.  
  4172. 1.  SPEED -- Each copy of RBBS has a dedicated computer and therefore  runs
  4173.     very fast compared to multi-tasking products like Multi-Link, DesqView,
  4174.     or Top View.
  4175.  
  4176. 2.  SHARED  FILES  -- Each bulletin board can share  files,  including  the
  4177.     users  and  messages.  The PC Slave system acts  like  Orchid's  PC-Net
  4178.     network for record locking.
  4179.  
  4180. 3.  EXPANDABILITY -- You can have up to 31 slaves.  The big advantage  over
  4181.     Multi-Link  is  that  you have faster boards and can  expand  beyond  2
  4182.     boards.  The big advantage over networks is that you do not have to add
  4183.     another PC, just another slave.  The power supply and cooling  capacity
  4184.     of  a PC-2 or XT limit you to adding only 2 slaves.  An AT can have  up
  4185.     to  five.  You can buy PC compatibles that have more  expansion  slots.
  4186.     You  can also get an external hard disk with expansion slots.   Or  you
  4187.     can buy an expansion chassis.
  4188.  
  4189. 4.  COSTS  --  It  is  far cheaper to expand  using  PC-Slave/16's  than  a
  4190.     network.   The  PC-Slave  lists  for $900  and  can  be  purchased  for
  4191.     significantly less.  Other networks require not only a separate PC  but
  4192.     also  a "network" card of some sort which puts the costs of  each  port
  4193.     well above $2,000.
  4194.  
  4195. 5. DEDICATED  PC IS NOT REQUIRED -- Your PC can remain free for you to  use
  4196.     while  slaves  run  the bulletin boards (or run  another  copy  of  the
  4197.     bulletin board).   You do not degrade performance on the slaves, except
  4198.     for  contention  for the hard disk and that can be mitigated  by  using
  4199.     disk caching.
  4200.  
  4201. B. THE DISADVANTAGES:  The disadvantages of a slave system are:
  4202.  
  4203. 1.  COMPATIBILITY  --Not  all hard disks are compatible  with  the  slaves.
  4204.     Hard  disks known to be compatible include the Seagates, Priam 60  meg,
  4205.     Bernoulli,  and  Maxtor hard disks, as well as the Alloy line  of  hard
  4206.     disks.   Hard disks definitely not compatible include all models of  US
  4207.     Design.
  4208.  
  4209. 2.  EXPENSIVE TO "SNOOP" -- Alloy supports several monitors attached to the
  4210.     PC-Slave/16 (although a standard IBM PC monitor is not one of them) and
  4211.     all require a special cable.  The cheapest way to view the sessions  on
  4212.     the  slaves   from  the  host PC's monitor is  modify  one  of  Alloy's
  4213.     utilities and run it.  The modified utility is available on most  RBBS-
  4214.     PC's  that run PC-Slave/16's such as Doug Azzarito's -- (407)  627-6969
  4215. RBBS-PC Version CPC17-1A                                    October 2, 1988
  4216. Copyright 1988 by D. Thomas Mack                            Page 186 of 232
  4217.  
  4218.     or  6862.  Another approach is to have a single monitor attached  to  a
  4219.     switch box that lets the activity be viewed on any slave.
  4220.  
  4221. 3.  ONLY  TWO SHARED DRIVES CAN BE WRITTEN TO -- At most two drives can  be
  4222.     shared  for  writing.  All drives can be read from any slaves,  but  to
  4223.     write on a non-shared drive, no other can write to it.
  4224.  
  4225. C. OVERVIEW OF SETTING UP A PC-SLAVE/16 RBBS-PC:  Five easy steps on how to
  4226. install RBBS-PC in a PC-Slave/16 environment (Note that the PC Slave system
  4227. requires a special configuration for RBBS-PC):
  4228.  
  4229. STEP 1 -- You will have to purchase multiple telephone lines.  They can  be
  4230.     made  to roll so that only one number is called, and if busy, the  call
  4231.     will roll over to the other lines.
  4232.  
  4233. STEP2 -- Install the slaves.  Remember to set switches on the slave  boards
  4234.     that  number  them consecutively.  See the PC-Slave  documentation  for
  4235.     details.
  4236.  
  4237. STEP 3  --  Install the software.  The Alloy PC-Slave has to  have  special
  4238.     Alloy  software  called  NTNX  to coordinate  the  slaves  and  process
  4239.     requests  for shared resources.  You also have to run an Alloy  routine
  4240.     to  prepare your hard disk for use with the Alloy slaves.  See the  PC-
  4241.     Slave documentation for details.
  4242.  
  4243. STEP 4 -- Install a modem with no pin 22.  Pin 22 used to be required  with
  4244.     RBBS-PC in order to answer the phone.  On the slaves, pin 22 CANNOT  be
  4245.     connected, or else the slave will continuously reboot.  However,  newer
  4246.     slaves support pin 22.
  4247.  
  4248. STEP 5 -- Configure RBBS-PC using CONFIG.EXE with the following parameters:
  4249.      (a)  use COM2 (parameter 201)
  4250.      (b)  Via parameter 29 tell RBBS-PC it is running on an IBM  compatible
  4251.           rather  than a PC, XT, or AT.  (Lie and tell RBBS-PC you  have  a
  4252.           Compaq Plus.)
  4253.      (c)  Use  CONFIG parameter 161 to set the maximum number  of  bulletin
  4254.           boards  to as many boards as you intend to install  (rather  than
  4255.           the  number  you  are currently running.   This  makes  expansion
  4256.           easier.).
  4257.      (d)  PC-Net  is the multi-user environment you will be  running  under
  4258.           and should indicate so via CONFIG parameter 162.
  4259.      (e)  Set up the RBBS-PC files.
  4260.  
  4261. An  easy  way to configure the multiple RBBS-PC's is to put each one  in  a
  4262. separate  subdirectory,  e.g.  "RBBS1" for the 1st node,  "RBBS2"  for  the
  4263. second,  etc.  Inside each subdirectory will be the callers file  for  that
  4264. node and the DEF file (RBBS1PC.DEF, RBBS2PC.DEF, etc.).  The DEF files  can
  4265. be  the  same.   Make  the  default  drive  on  each  slave  be  the  right
  4266. subdirectory.   Path over to where the RBBS-PC.EXE is stored.  Invoke  each
  4267. RBBS-PC by using its node number, e.g. "RBBS-PC 1", "RBBS-PC 2", etc.   You
  4268. can  set  up  an  autoexec  for  each  slave  that  brings  up  the  boards
  4269. automatically upon system boot.
  4270.  
  4271. Please  note that the NTNX software is very vulnerable to any RAM  resident
  4272. RBBS-PC Version CPC17-1A                                    October 2, 1988
  4273. Copyright 1988 by D. Thomas Mack                            Page 187 of 232
  4274.  
  4275. software.   You  should  install  the Slaves with  no  additional  software
  4276. present and carefully test any resident software you want to run with it.
  4277.  
  4278. D. A DETAILED DESCRIPTION OF SETTING UP A PC-SLAVE 16 RBBS-PC:
  4279.  
  4280. Hardware Limitations:
  4281. 1. Two  PC/Slave  16 cards per XT box or five in an  AT  maximum  otherwise
  4282.    you'll  be buying power supplies frequently.  An expansion  chassis  for
  4283.    four  cards  (Alloy Plus4) or expansion chassis for up to  twelve  cards
  4284.    will  be  needed  for bigger systems.  Expansions boxes  can  be  daisy-
  4285.    chained to up to thirty one Nodes or workstations, if needed.
  4286.  
  4287. 2. PC/Slave  16 cards do not support PIN 22 for Ring Detect.  You  must  be
  4288.    able to set your modem to AutoAnswer as well as NOT have PIN 22 wired on
  4289.    your modem cables; if PIN 22 is connected, each callers RING will reboot
  4290.    the Slave.  However, newer slaves do support PIN 22.
  4291.  
  4292. 3. No clock on the PC/Slave 16 card.  The Slave gets the Time and date from
  4293.    the main system clock and so one must be available.
  4294.  
  4295. 4. A  terminal  such  as a Kimtron KT-7/PC or Alloy  PCST  is  required  to
  4296.    locally  access and TYPE to a Slave.  Other terminals will work but  may
  4297.    not  support all of the IBM extended graphics codes.  For  a  multi-node
  4298.    RBBS-PC, one terminal can be used with an A-B-C-D switching box to 'dial
  4299.    in' to the node you  wish to work with.
  4300.  
  4301. 5. The  Slaves' CPU [NEC V20 @ 8 mghz] shuts down when writing to the  hard
  4302.    disk.   This  creates problems with timeout errors on  uploads.   Upload
  4303.    problems can be eliminated by using the write buffer option in NTNX 1.64
  4304.    or higher (/8). The problem can also be alleviated by using a fast  hard
  4305.    drive  supported by Alloy.  Also, the hard drive must be formatted  with
  4306.    the most efficient interleave setting and driver.  Hard drives that work
  4307.    without  significant  upload  timeout errors have  been  formatted  with
  4308.    either Golden Bow's Vfeature Deluxe or Priam's formatting software; this
  4309.    problem  is  especially noticeable on AT systems and not too much  of  a
  4310.    problem on small XT systems.  Seagate, Bernoulli Box, Maxtors, and Priam
  4311.    Inner Space drives seem to work fine with the Alloy PC/Slave-16 cards.
  4312.  
  4313. Software Limitations:
  4314. 1. ATNX runs Orchid PC Net applications but NTNX is more versatile and will
  4315.    run  applications for Novell's Advanced Netware, MS-Net, AND  Orchid  PC
  4316.    Net  with  proper file locking.  NTNX has had less  problems  with  file
  4317.    corruption  and  cross-linking than ATNX after  polling  current  sysops
  4318.    using Alloy Slaves.
  4319.  
  4320. 2. ATNX and NTNX will allow users working on Slaves to easily and routinely
  4321.    have read/write access on only TWO hard drive volumes.
  4322.  
  4323. 3. ATNX and NTNX have difficulty keeping track of system date and time when
  4324.    "certain" programs are run on the Slave.  With RBBS-PC, running external
  4325.    such  as Ymodem and WXmodem cause the time and date on the Slaves to  go
  4326.    awry.   Also,  WXMODEM does not work in upload mode on Slaves due  to  a
  4327.    timing  problem  in  the initial handshake.  Alloy's  solution  to  this
  4328.    problem  is  a file called UPTIME.COM, which is run on the HOST,  but  I
  4329. RBBS-PC Version CPC17-1A                                    October 2, 1988
  4330. Copyright 1988 by D. Thomas Mack                            Page 188 of 232
  4331.  
  4332.    have  had  very  poor results with it.  The problem  seems  to  be  most
  4333.    identifiable on AT class machines.
  4334.  
  4335. For  the optimum system flexibility you may want to buy Alloy  PC/Slave-16N
  4336. cards  which  have the special PAL chip for NTNX/Novell  compatibility  and
  4337. NTNX  software.  RBBS-PC, however, will run fine without the PAL chip  even
  4338. under NTNX.
  4339.  
  4340. Some   nice  additional  utilities  for  the  Slaves,   including   special
  4341. diagnostics, are found in the separate PC-Plus Advanced User's Kit and  are
  4342. worth  having.  A single Kimtron KT-7/PC terminal or other  smart  terminal
  4343. may be obtained right away but is not necessary for the bulletin-board-only
  4344. system  as  one  can always sign on from remote  for  answering  mail;  pay
  4345. special attention to the terminal-to-Slave cable as it is non-standard  and
  4346. you'll probably wind up making it yourself for less than $5 in parts -- one
  4347. end  is a male 9-pin D-shell and the other is 25-pin RS232 male  connector.
  4348. For  a two to four node system, obtain a T-Switch box from Inmacs or  Radio
  4349. Shack  to hook the terminal as COMMON and Slave consoles.  The computer  to
  4350. house  the Slaves, called the HOST, should be the quickest CPU  speed  that
  4351. you  can obtain.  All PC Slaves/16 should be purchased with 1  megabyte  of
  4352. onboard RAM.
  4353.  
  4354. Installation:
  4355. 1. Format your hard drive with either DOS 3.1 or 3.2.
  4356.  
  4357. 2. Divide  the hard drive into multiple volumes of standard DOS size  (less
  4358.    than 32 megabytes).
  4359.  
  4360. 3. Install NTNX or ATNX and the Slaves as is written in the Alloy  manuals.
  4361.    Choose the default settings for everything.  Use 512K on the 1  megabyte
  4362.    PC/Slave  for caching and the other  512 to run RBBS.  Depending on  how
  4363.    the  board  is configured, you may need to set switches so that  512  is
  4364.    used to run applications.  Use 4K for the Host PC caching.  Allocate  25
  4365.    files per each Slave + 64 for the maximum number of open files.
  4366.  
  4367. 4. Set  up  the CONFIG.SYS and AUTOEXEC.BAT files for the HOST  as  follows
  4368.    especially if you do not plan to use the HOST as a Node for RBBS-PC:
  4369.    CONFIG.SYS
  4370.       device=NX.SYS          -  NTNX driver (must be first!!)
  4371.       device=hard_drv.sys    -  Your hard Disk driver
  4372.       FCBS = 32,32           -  File Control Blocks increased
  4373.       buffers = 20           -  DOS buffers
  4374.       files = 32             -  Number of OPEN files on HOST
  4375.       device = ANSI.sys      -  Extended graphics driver
  4376.    AUTOEXEC.BAT
  4377.       NTNX                   -  NTNX driver
  4378.       fm 3                   -  Level of File protection
  4379.       prompt $p$g            -  customized dos prompt
  4380.       path = ........        -  set path to the NTNX files
  4381.  
  4382. 5. Set up the CONFIG.SYS and AUTOEXEC.BAT files for the Slaves as follows:
  4383.    CONFIG.U0x under DOS 3.2
  4384.       FCBS = 32,32
  4385.       buffers = 10
  4386. RBBS-PC Version CPC17-1A                                    October 2, 1988
  4387. Copyright 1988 by D. Thomas Mack                            Page 189 of 232
  4388.  
  4389.       files = 30
  4390.       device = ansi.sys
  4391.       shell = C:\COMMAND.SLV C:\ /P /E:800
  4392.       device = ANSI.SYS
  4393.  
  4394.    Of  special  note,  the  SHELL statement has been  used  to  expand  the
  4395.    environment  space  on the Slaves.  This corrects a  problem  seen  with
  4396.    random RBBS lockups or getting Out of Memory errors; external  protocols
  4397.    and  DOOR programs, given time, stop running due to memory  problems  if
  4398.    one  doesn't use this SHELL statement.  Under DOS 3.1, set /E:50  [=  50
  4399.    paragraphs] and under DOS 3.2, set /E:800 [= 800 bytes].
  4400.  
  4401.    AUTOEXEC.U0x
  4402.       fm 3
  4403.       prompt $p$g
  4404.       path = .......Set the path to the NTNX files and to the 'home'
  4405.                     directory for this node on the SHARED drives
  4406.       cd\RBBS0x     Change to the RBBS-PC directory for Node x
  4407.       RBBSx.BAT     Invoke RBBS-PC for Node x
  4408.  
  4409. 6. CONFIG parameters for the slaves, must  be the following parameters:
  4410.       Parameter 29 (Type of computer):  Compaq Plus.
  4411.       Parameter 224 (Number of rings to wait before answering):  0.
  4412.       Parameter 162 (Environment):  Orchid PC Net.
  4413.       Parameter 221 (Communications port):  2.
  4414.       Maximum  number of users:  at least as many slaves as you have,  plus
  4415.         one  if you plan to run a node on the host.  You can  specify  more
  4416.         (up to 36) if you want to plan for expansion.
  4417.  
  4418. 7. Set up RBBS-PC as follows:
  4419.       Create subdirectories \RBBS01, \RBBS02, \RBBS0x... on a shared drive.
  4420.  
  4421.       Create  subdirectory  \MAIN  for your upload  directory,  answers  to
  4422.         questionnaires, comments.
  4423.  
  4424.       On a  cached  drive, place all static RBBS-PC files  such  as  MENUs,
  4425.         HELPs, PASSWRDS, TRASHCAN, external file transfer protocols.  RBBS-
  4426.         PC.EXE and CONFIG.EXE go here as well.
  4427.  
  4428.       On the second SHARED drive, make a subdirectory \COMMON for MESSAGES,
  4429.         USERS, CONFENCE, and conference message/user files.
  4430.  
  4431.       If you plan to use DOORS, especially Bob Westcott's DOORWARE,  create
  4432.         a subdirectory called \DOORS on the SHARED drive.
  4433.  
  4434.       Run CONFIG and create RBBSxPC.DEF files for all your nodes.  Remember
  4435.         that   you   will  run  multi-user  under  PC   Net.    To   answer
  4436.         on RING zero, the modem serial port on the Slaves must be addressed
  4437.         as COM2 and not COM1.  Double-check file locations! Put your static
  4438.         text files in the same subdir as MESSAGES and USERS and make it the
  4439.         default subdirectory
  4440.  
  4441.       Copy  RBBS1PC.DEF to RBBSxPC.DEF for each node that you hope to  have
  4442.         then  re-edit  each  .DEF file to customize Node  numbers  such  as
  4443. RBBS-PC Version CPC17-1A                                    October 2, 1988
  4444. Copyright 1988 by D. Thomas Mack                            Page 190 of 232
  4445.  
  4446.         RCTTY1.BAT, RBBS3.BAT, etc.
  4447.  
  4448.       Copy the RBBSxPC.DEF file to the matching subdirectory.   If
  4449.         you  don't  wish to edit the .DEF files, place RBBSxPC.DEF  on  one
  4450.         shared  drive  and  place the dynamic RBBS-PC files  on  the  other
  4451.         shared drive; be sure that you have at least logged into that other
  4452.         SHARED drive's subdirectory, using the AUTOEXEC.U0x before starting
  4453.         RBBS-PC or else RBBS-PC will not find those files.
  4454.  
  4455.       Temporary files used for transfer or Verbose ARC listing are  created
  4456.         on the default subdirectory automatically.  You may assign  CALLERS
  4457.         as either one file for all nodes or one CALLERS file for each  node
  4458.         located in the default directory.
  4459.  
  4460.       To use  Sysop  Function  7 (Remote Drop to DOS),  RBBS-PC  must  find
  4461.         COMMAND.COM.   PC-Slave/16's,  however,  use  COMMAND.SLV  as   the
  4462.         command  processor; copy COMMAND.SLV to COMMAND.COM, place it on  a
  4463.         cached  drive, and tell CONFIG where to find it.  Be careful  using
  4464.         this Sysop function with the Slaves as you will lock up the Node if
  4465.         you lose carrier; WATCHDOG is incompatible with the Slaves.
  4466.  
  4467. Additional tips/hints:
  4468. 1. Avoid  using  any memory resident utilities.  They  may  interfere  with
  4469.    Slave operation.
  4470.  
  4471. 2. A  program on the Advanced Utilities disk called SEE.COM allows  callers
  4472.    any Node to be viewed from the HOST.
  4473.  
  4474. 3. Norton's Editor or WordPerfect Corporation's Programmers Editor from the
  4475.    WordPerfect  Library  is  used for editing  operations  on  the  system,
  4476.    especially  for  maintaining  the fixed-length  directory  of  the  file
  4477.    management  system.  Not many other editors, except EDLIN, can  be  used
  4478.    reliably.
  4479.  
  4480. 4. Easy  to forget but don't as it will be a source of frustration --  plan
  4481.    out your file locations on paper before actually setting up the system.
  4482.  
  4483. 5. Backup your system frequently!
  4484.  
  4485. If you have any questions or problems, feel free to leave a message on  Ken
  4486. Goosens system (703) 978-6360
  4487. RBBS-PC Version CPC17-1A                                    October 2, 1988
  4488. Copyright 1988 by D. Thomas Mack                            Page 191 of 232
  4489.  
  4490. APPENDIX G -- RBBS-PC and 10 NET Network
  4491. ----------------------------------------
  4492. Starting  with RBBS-PC CPC15-1A support for Fox Research's' 10 Net  Network
  4493. is being provided.
  4494.  
  4495. Since  this is the first release with this support we have very little that
  4496. we can offer in tuning support for 10 NET.
  4497.  
  4498. We selected to use the Semaphore locking mechanism that we have used in the
  4499. other  networks and therefore you must specify the following parameters  on
  4500. the Superstation in your 10 NET network.
  4501.  
  4502. LOGINS=x            1 for every node on the system
  4503. OPENFILE=xxx        10 for every node running RBBS-PC
  4504. SHAREFIL=16         (This is the default you can add more if you want)
  4505. LOCKS=x             3
  4506. SEMA=xxx            3 for every node running RBBS-PC
  4507.  
  4508. You will also need to run NETSU and specify option 6 (DOS file sharing).
  4509.  
  4510. Please  note that these values should be in addition to any parameters  you
  4511. may  have already specified for other User stations and other uses of  your
  4512. 10 NET network.  And you can always make the values larger in attempting to
  4513. improve performance.
  4514. RBBS-PC Version CPC17-1A                                    October 2, 1988
  4515. Copyright 1988 by D. Thomas Mack                            Page 192 of 232
  4516.  
  4517. APPENDIX H -- RBBS-PC and the Hearing-Impaired
  4518. ----------------------------------------------
  4519. Telecommunications  Devices  for the Deaf (TDD's) use the Baudot  character
  4520. set  (i.e.  5-bit) and utilize modems that transmit at 45 baud and  do  not
  4521. generate  a  carrier signal.   This is because such devices were  initially
  4522. adaptations   of   surplus  Western  Union  TTY  machines   for   telephone
  4523. communications.   The  widespread  use of Baudot devices  by  the  hearing-
  4524. impaired,  the previous high cost of computers and modems,  and the lack of
  4525. software designed for electronic communications,  has impeded the change to
  4526. ASCII communications by the hearing-impaired community.
  4527.  
  4528. Equipment manufacturers have also made it difficult for the deaf to change.
  4529. When TDD's with ASCII code transmission capability began to be offered, the
  4530. majority of manufacturers limited them to only 110 baud and put disclaimers
  4531. in  their manuals that said ASCII was available for use but that  "computer
  4532. language" was "less reliable" and hard to use.  Their limiting of the TDD's
  4533. output screen to 12 to 20 characters further compounded the problem because
  4534. the screen would overwrite several times to display one line of text from a
  4535. host  system.   The  manufacturers'  "solution"  to  this  problem  was  to
  4536. recommend  printers for communication with such "host" systems as  RBBS-PC.
  4537. Some  units now offer both 110 and 300 baud ASCII transmission in  addition
  4538. to  the  45  baud Baudot.   Unfortunately,  these typically  have  only  20
  4539. character screens.
  4540.  
  4541. In December of 1984,  Ted Janossy of Rochester, Minnesota, sent me a three-
  4542. page letter describing the above situation.   Ted's letter motivated me  to
  4543. test  and verify the "ring-back" feature of RBBS-PC in CPC12-4A.    It  had
  4544. not  been tested in earlier versions because I had assumed  (presumptuously
  4545. and  insensitively)  that  "real SYSOP's don't  use  ring-back  RBBS-PC's."
  4546. Ted's  letter  awakened  me  to  the potential  of  RBBS-PC  to  facilitate
  4547. communications among the hearing-impaired.   In the awakening I also had  a
  4548. chance to look down at my own feet of clay.
  4549.  
  4550. RBBS-PC can be configured to answer calls only after a specified number  of
  4551. rings  (i.e.  15).   The telephone companies wire the homes of the hearing-
  4552. impaired such that when the phone rings,  the lights within the house flash
  4553. on and off.
  4554.  
  4555. With  RBBS-PC  a SYSOP can specify the number of rings RBBS-PC is  to  wait
  4556. before answering the phone automatically.   Setting this number high enough
  4557. allows  someone  with  a hearing impairment time enough to get  to  the  PC
  4558. running RBBS-PC.   Pressing the PC's function key 5 (F5) causes RBBS-PC  to
  4559. answer  the phone immediately.   The caller would know that someone was  at
  4560. the  keyboard  because RBBS-PC answered the phone in less than the  agreed-
  4561. upon number of rings.   The caller would log onto RBBS-PC normally and  the
  4562. person  at the PC keyboard would be able to see who it was.   If the person
  4563. who was called wanted to "chat" with the caller,  all they would have to do
  4564. would be to press function key 10 (F10).
  4565.  
  4566. If  RBBS-PC  didn't answer the telephone within the agreed-upon  number  of
  4567. rings,  the caller would know that whomever was being called couldn't  come
  4568. to the keyboard.  The caller would then log on and leave a message.
  4569. RBBS-PC Version CPC17-1A                                    October 2, 1988
  4570. Copyright 1988 by D. Thomas Mack                            Page 193 of 232
  4571.  
  4572. APPENDIX I -- RBBS-PC and the IBM PCjr
  4573. --------------------------------------
  4574. RBBS-PC adheres to the Hayes standards for autoanswer applications that are
  4575. described in Section 9,  "Writing Programs for the Smartmodem 1200," of the
  4576. the SMARTMODEM 1200 HARDWARE REFERENCE MANUAL.   Under the section entitled
  4577. "Additional   Program  Considerations"  Hayes  recommends  that  autoanswer
  4578. applications  (like RBBS-PC) "...  force the modem to answer the call (ATA)
  4579. rather  than  allowing the modem to automatically  answer...."    Beginning
  4580. with  CPC13-1A,  RBBS-PC no longer REQUIRES the Ring Indicator signal  from
  4581. the modem (pin 22) in order to answer the phone (except if parameter 224 of
  4582. CONFIG is non-zero).
  4583.  
  4584. Here are some facts about the PCjr:
  4585.  
  4586. 1. The  PCjr's  external  modem interface does not have  a  Ring  Indicator
  4587.    signal.
  4588. 2. The  PCjr  requires  that  an external modem be opened  as  COM1  if  no
  4589.    internal  modem is installed.  However, if no internal modem exists  the
  4590.    PCjr  requires  that the COM2 RS-232 registers be used even  though  the
  4591.    port  has been opened as COM1.  Technically this is described  as  using
  4592.    the  external  RS-232 asynchronous adapter as logical  channel  1  (i.e.
  4593.    COM1)  but  manipulating  it as physical channel 2  (i.e.  COM2).   This
  4594.    occurs  on a PCjr only  when an internal  modem is NOT present  and  the
  4595.    external RS-232 interface is.
  4596. 3. The 128K PCjr only provides 90K of usable RAM (the rest is used by  DOS,
  4597.    the  monitor's  buffers, etc.).  Fortunately PCjr owners can get  up  to
  4598.    512K  of RAM with "add-on" equipment (from IBM and others) in  order  to
  4599.    have enough RAM for RBBS-PC to run in.
  4600. 4. The standard PCjr supplied by IBM does not have a DMA and hence can't do
  4601.    communications I/O simultaneously while doing disk I/O.
  4602.  
  4603. RBBS-PC beginning with version CPC13-1A will run an IBM PCjr providing that
  4604. the PCjr
  4605.  
  4606. 1. Has at least 320K of memory.
  4607. 2. Disk  I/O  does not occur simultaneously with communications  I/O  (i.e.
  4608.    either you have a second disk drive with a DMA or you set BUFFERS=0).
  4609. 3. One of the following three modem configurations are used:
  4610.      An internal PCjr modem with an external Hayes modem where the external
  4611.         Hayes modem is used for RBBS-PC.
  4612.      No internal PCjr modem with an external Hayes modem used for RBBS-PC.
  4613.      Only an internal PCjr modem and it is used for RBBS-PC.
  4614.  
  4615. The  following discusses each of these three modem configurations supported
  4616. by RBBS-PC with the PCjr.
  4617.  
  4618. Internal PCjr Modem with RBBS-PC Using External Hayes Modem
  4619. -----------------------------------------------------------
  4620. This  configuration means that the PCjr has both a COM1 (the internal  PCjr
  4621. modem)  and a COM2 (the external Hayes modem).   RBBS-PC is set up  to  use
  4622. COM2.   No  changes  are  required  to for RBBS-PC for this  type  of  PCjr
  4623. configuration.   CONFIG parameter 224 should be set to 0.   This will cause
  4624. RBBS-PC to set the external Hayes modem into "auto-answer" mode and RBBS-PC
  4625. will wait for carrier detect.   This is the way that RBBS-PC overcomes  the
  4626. RBBS-PC Version CPC17-1A                                    October 2, 1988
  4627. Copyright 1988 by D. Thomas Mack                            Page 194 of 232
  4628.  
  4629. PCjr's  lack  of  "ring-indicator" signal for the  external  communications
  4630. port.
  4631.  
  4632. No Internal PCjr Modem With RBBS-PC Using External Hayes Modem
  4633. --------------------------------------------------------------
  4634. This configuration means that the PCjr has only one RS-232 interface -- the
  4635. external Hayes modem.  This must be opened as COM1 but use COM2's registers
  4636. to  control  the communications port (believe it or not that's the way  IBM
  4637. designed  the PCjr).
  4638.  
  4639. CONFIG parameter 221 should be used to indicate  that COM1 is being used.
  4640.  
  4641. Unfortunately  the  current  BASIC  compilers (both  IBM's  Version  2  and
  4642. Microsoft's  QuickBASIC) are incapable of handling a communication port  as
  4643. logical device 1 (i.e. COM1) but on physical channel 2 (i.e. the interrupts
  4644. are for COM2).
  4645.  
  4646. Should  this ever be fixed by either IBM or Microsoft, CONFIG parameter  29
  4647. should be used to indicate that no internal PCjr modem is installed.   This
  4648. tells  CONFIG to make sure that COM2 registers are used to  manipulate  the
  4649. PCjr's external communications port.
  4650.  
  4651. Until  this is fixed by the respective vendors,  the PCjr user will have to
  4652. run  a  utility like COMSWAP that exchanges the pointers between  COM1  and
  4653. COM2 within DOS.
  4654.  
  4655. In either case,  CONFIG parameter 224 should be set to 0.   This will cause
  4656. RBBS-PC to set the external Hayes modem into "auto-answer" mode and RBBS-PC
  4657. will wait for carrier detect.   This is the way that RBBS-PC overcomes  the
  4658. PCjr's  lack  of  "ring-indicator" signal for the  external  communications
  4659. port.   Again  no  changes to RBBS-PC are required for this  type  of  PCjr
  4660. configuration.
  4661.  
  4662. Only An Internal PCjr Modem for RBBS and NO External Hayes Modem
  4663. ----------------------------------------------------------------
  4664. For  this  type  of PCjr configuration,  you can take  the  CONFIG  default
  4665. settings  for  the  communications  port (COM1) and specify  that  you  are
  4666. running on a PCjr (parameter 29).  However, make sure that CONFIG parameter
  4667. 228 specifies that the modem is to be opened at 300 baud.  Of course, RBBS-
  4668. PC  will  be  only able to answer the telephone at 300 baud  and  send  and
  4669. receive data from users who log on with their communications parameters set
  4670. at N/8/1 (i.e.  no parity, eight data bits, and one stop bit) since RBBS-PC
  4671. is limited by the PCjr's own modem's limitations.
  4672.  
  4673. RBBS-PC already has the modem commands for the PCjr's very strange internal
  4674. modem  in the logic to answer the phone so no changes to the .DEF file  are
  4675. required.
  4676. RBBS-PC Version CPC17-1A                                    October 2, 1988
  4677. Copyright 1988 by D. Thomas Mack                            Page 195 of 232
  4678.  
  4679. APPENDIX J -- RBBS-PC Subscription Service
  4680. ------------------------------------------
  4681. It  seems that many people absolutely must be on the bleeding edge of RBBS-
  4682. PC  and demand each new version as soon as possible after it  is  released.
  4683. Since downloading it from my RBBS-PC usually keeps my board busy 24 hours a
  4684. day,  seven  days a week when each new version is released,  and I want  my
  4685. board to be used to encourage and engage in discussions,  I offer the RBBS-
  4686. PC "Subscription Service" in order to free up my board.
  4687.  
  4688. Within the United States for $35 (prepaid by check or money order) you  can
  4689. be guaranteed next day delivery of the very NEXT release of RBBS-PC just as
  4690. I  mail it to the CPCUG Software Exchange.   The diskettes will be sent  to
  4691. you  directly via Federal Express's "Courier-Pak" Overnight  Envelope.   In
  4692. case you are wondering who gets the $35 it is allocated as follows:
  4693.  
  4694.    $ 25 -- Federal Express Charge for Courier-Pak
  4695.       8 -- CPCUG Software Exchange
  4696.       2 -- for the hassle the family puts up with and for rate changes
  4697.     ----
  4698.    $ 35 = Total Cost    Add: $5 for Alaska, Hawaii, and Puerto Rico
  4699.                              $11 for Europe, the Far East, and Australasia
  4700.  
  4701. Hopefully,  this  service  will only be used by a  very,  VERY  few!   Most
  4702. releases  have a few fixes that get published within the first week or  two
  4703. that  they are out.   Because of this everyone is advised to check back for
  4704. fixes  after each  release goes out.
  4705.  
  4706. To  obtain  this  service for the NEXT release (it does NOT  apply  to  the
  4707. current or previous releases) fill out the following form and send it along
  4708. with  your  check  or money order in U.S.  funds (no  purchase  orders  are
  4709. accepted and your canceled check is your only invoice).
  4710.       +--------------------------------------------------------------+
  4711.       | To: D. Thomas Mack            RBBS-PC Subscription Service to|
  4712.       |     39 Cranbury Drive         the NEXT release of RBBS-PC (if|
  4713.       |     Trumbull, Conneticut      any, and none are implied or   |
  4714.       |                    06611      promised by this offer)        |
  4715.       |--------------------------------------------------------------|
  4716.       |Date Requested:                   Date Received:              |
  4717.       |--------------------------------------------------------------|
  4718.       |To (Recipient's Name):                                        |
  4719.       |--------------------------------------------------------------|
  4720.       |Recipient's Phone Number (required): (      )        -        |
  4721.       |--------------------------------------------------------------|
  4722.       |Exact Street Address (no P.O. Box or P.O. Zip Code accepted)  |
  4723.       |                                                              |
  4724.       |                                                              |
  4725.       |--------------------------------------------------------------|
  4726.       | City                            | State or Country           |
  4727.       |                                 |                            |
  4728.       |--------------------------------------------------------------|
  4729.       | Signature (required)            | ZIP Code for Street Address|
  4730.       |                                 |                            |
  4731.       +--------------------------------------------------------------+
  4732.       Note: this is not a promise that there will be any new releases.
  4733. RBBS-PC Version CPC17-1A                                    October 2, 1988
  4734. Copyright 1988 by D. Thomas Mack                            Page 196 of 232
  4735.  
  4736. APPENDIX K -- RBBS-PC National Listing Service
  4737. ----------------------------------------------
  4738. Frequent inquires are made about a "national" list of RBBS-PC's.   In order
  4739. to help SYSOP's (and potential SYSOP's) everywhere find configurations that
  4740. most closely match their own,  with the introduction of RBBS-PC CPC12-5B an
  4741. additional  public service was inaugurated to keep an "ACCURATE"  telephone
  4742. listing  of all publicly available RBBS-PC systems.   The success  of  this
  4743. endeavor  depends  on you.   If you would like a chance to stand up and  be
  4744. recognized, please fill out and return the following form:
  4745.       +--------------------------------------------------------------+
  4746.       | To: Jon Martin                   RBBS-PC National Listing    |
  4747.       |     4396 N. Prairie Willow Ct.   Service (if any, and none is|
  4748.       |     Concord, California          implied or promised by this |
  4749.       |                    94521         offer)                      |
  4750.       |--------------------------------------------------------------|
  4751.       |Please  REMOVE    CHANGE    ADD   Date Requested:             |
  4752.       |(circle one) to your Listing.     Date Action Taken:          |
  4753.       |--------------------------------------------------------------|
  4754.       |SYSOP's Name:                                                 |
  4755.       |--------------------------------------------------------------|
  4756.       |DATA Phone Number  (required): (      )        -              |
  4757.       |VOICE Phone Number (optional): (      )        -              |
  4758.       |Do NOT publish my VOICE number (please check) _____           |
  4759.       |--------------------------------------------------------------|
  4760.       |Exact Street Address (no P.O. Box or P.O. Zip Code accepted)  |
  4761.       |(Address will not be published. For my information only.)     |
  4762.       |                                                              |
  4763.       |--------------------------------------------------------------|
  4764.       | City                            | State                      |
  4765.       |                                 |                            |
  4766.       |--------------------------------------------------------------|
  4767.       | Signature (required):           | ZIP Code for Street Address|
  4768.       |                                 |                            |
  4769.       |                                 |                            |
  4770.       +--------------------------------------------------------------+
  4771.       | Detailed System Information                                  |
  4772.       | RBBS Name          :_________________________________________|
  4773.       | Operating Hrs.(EST):_________________________________________|
  4774.       | Specialty of RBBS  :_________________________________________|
  4775.       | Baud Rates         :_________________________________________|
  4776.       | Number of Nodes    :_________________________________________|
  4777.       | Modem Vendor/Model :_________________________________________|
  4778.       | Computer Type      :_________________________________________|
  4779.       | Memory             :_________________________________________|
  4780.       | Multi-Function Card:_________________________________________|
  4781.       | Monitor Vendor/Type:_________________________________________|
  4782.       | Disk Storage       :_________________________________________|
  4783.       | Special Cards      :_________________________________________|
  4784.       | DOS Version        :_________________________________________|
  4785.       | Related Software   :_________________________________________|
  4786.       |--------------------------------------------------------------|
  4787.       | Additional information/comments:                             |
  4788.       |                                                              |
  4789.       +--------------------------------------------------------------+
  4790. RBBS-PC Version CPC17-1A                                    October 2, 1988
  4791. Copyright 1988 by D. Thomas Mack                            Page 197 of 232
  4792.  
  4793. APPENDIX L -- RBBS-PC and The Ark-Paradyne Modem Switch Settings
  4794. ----------------------------------------------------------------
  4795. IMPORTANT:   This information is NEW and needed for RBBS-PC versions CPC16-
  4796.              1A and greater.
  4797.  
  4798. The ARK Modem is somewhat Hayes compatible, therefore some changes must  be
  4799. made  to  use this modem.  Because of major improvements  in  RBBS-PC,  the
  4800. modem  can now be used in both of its modes, Normal and Hayes. To  use  the
  4801. HAYES (tm) mode follow this procedure:
  4802.  
  4803. A.) Using CONFIG.EXE supplied with RBBS-PC, select and change the following
  4804.     parameters:
  4805.  
  4806. Parameter 224  Number of rings to wait before answering -------- 1
  4807.                Do you want ringback? (YES/NO) ----------------- NO
  4808. Parameter 225  Use the RBBS-PC default Hayes commands?--------- NO
  4809.                1. Reset the modem ------ : ATZ or ATV0Z
  4810.                2. Initialize the modem - : ATM0Q0S2=255S10=30E0S0=0
  4811.                     (Note the use of "Q0" to initialize the modem)
  4812.                3,4,5  Use the defaults supplied
  4813. Parameter 227  Issue modem commands between rings ------------ YES
  4814. Parameter 228  Baud rate to initially open modem at --------- 2400
  4815. Parameter 237  Leave modem at initial baud rate --------------- NO
  4816. Parameter 244  Modem flow control uses Clear-to-Send (CTS) ---- NO
  4817. Parameter 245  Modem flow control uses XON/XOFF --------------- NO
  4818.  
  4819. For the ARK 24K (not 24K PLUS) use the following switch & jumper settings:
  4820.  
  4821.         Switch 1 UUUDDUUD    (where U = Up = On and  D = Down = Off)
  4822.         Switch 2 UDDDDUDD
  4823.         Switch 3 DUUDUUUU
  4824.         MODEM         DTE/CLOCK        FLOW        BUSY       DTR
  4825.         JUMPERS         E8-E9         E15-E16      E4-E7     E11-E14
  4826.  
  4827. For the ARK 24K PLUS use the following:
  4828.  
  4829.         Switch 1 UUUDDUUD    last down = Hayes mode
  4830.         Switch 2 UDDDDUDD    first up = auto answer off
  4831.         Switch 3 DUUDUDDD    last three down = "auto baud"
  4832.         Modem Jumpers - Use the factory defaults on all
  4833.  
  4834. B.) You  can also use the ARK NORMAL mode with a fixed terminal  rate.  The
  4835.     modem talks to RBBS at 2400 and talks to your user at 300, 1200,  2400.
  4836.     One  problem noted was that upon return from dropping to DOS, the  baud
  4837.     rate  reverted back to 2400. If you were remote and using a  1200  baud
  4838.     modem,  things  get very messy.  It has been noted with  some  external
  4839.     protocols  that  a  similar problem exists.   I  don't  recommend  this
  4840.     setting  unless you are willing to take some risks.  You must also  use
  4841.     flow control.  Make the settings as follows:
  4842. RBBS-PC Version CPC17-1A                                    October 2, 1988
  4843. Copyright 1988 by D. Thomas Mack                            Page 198 of 232
  4844.  
  4845. Parameter 224  Number of rings to wait before answering -------- 1
  4846. Parameter 225  Use the RBBS-PC default Hayes commands?--------- NO
  4847.                1. Reset the modem ------ : ATV0Z
  4848.                2. Initialize the modem - : ATM0Q0S2=255S10=30E0S0=0
  4849.                3,4,5  Use the defaults supplied
  4850. Parameter 227  Issue commands between rings ------------------ YES
  4851. Parameter 228  Baud rate to initially open modem at --------- 2400
  4852. Parameter 237  Leave modem at initial baud rate -------------- YES
  4853. Parameter 244  Modem flow control uses Clear-to-Send (CTS) --- YES
  4854. Parameter 245  Modem flow control uses XON/XOFF -------------- YES
  4855.  
  4856. The following is recommended for the ARK 24K Modem:
  4857.  
  4858.         Switch 1 UUUDDUUU     (NOTE 8th position)  +++
  4859.         Switch 2 UDDDDUDD
  4860.         Switch 3 DUUDUUUU
  4861.         MODEM         DTE/CLOCK        FLOW        BUSY       DTR
  4862.         JUMPERS         E9-E10        E15-E16      E4-E7     E11-E14
  4863.  
  4864. The following is recommended for the ARK 24K Plus Modem:
  4865.  
  4866.         Switch 1 UUUDDUUU
  4867.         Switch 2 UDDDDUDD
  4868.         Switch 3 DUUDUUUU
  4869.  
  4870. C.) You  can also use the Hayes mode with rings set to zero but  you  can't
  4871.     use  Doors  or  Sysop drop to DOS.  (This mode has proven  to  be  very
  4872.     reliable)
  4873.  
  4874. Parameter 224  Number of rings to wait before answering -------- 0
  4875. Parameter 225  Use the RBBS-PC default Hayes commands?--------- NO
  4876.                1. Reset the modem ------ : ATZ
  4877.                2. Initialize the modem - : ATM0Q0S2=255S10=30E0S0=1
  4878.                3,4,5  Use the defaults supplied
  4879. Parameter 227  Issue commands between rings ------------------ YES
  4880. Parameter 228  Baud rate to initially open modem at --------- 2400
  4881. Parameter 237  Leave modem at initial baud rate --------------  NO
  4882. Parameter 244  Modem flow control uses Clear-to-Send (CTS) ---- NO
  4883. Parameter 245  Modem flow control uses XON/XOFF --------------- NO
  4884.  
  4885. The following is recommended for the ARK 24K Modem:
  4886.  
  4887.         Switch 1 UUUDDUUD   (note 8th position)
  4888.         Switch 2 DDDDDUDD   (note 1st position)
  4889.         Switch 3 DUUDUUUU
  4890.         MODEM         DTE/CLOCK        FLOW        BUSY       DTR
  4891.         JUMPERS         E8-E9         E15-E16      E4-E7     E11-E14
  4892.  
  4893. The following is recommended for the ARK 24K Plus Modem:
  4894.  
  4895.         Switch 1 UUUDDUUD
  4896.         Switch 2 UDDDDUDD
  4897.         Switch 3 DUUDUDDD
  4898. RBBS-PC Version CPC17-1A                                    October 2, 1988
  4899. Copyright 1988 by D. Thomas Mack                            Page 199 of 232
  4900.  
  4901. Technical comments on the Ark Modems for your interest.
  4902. 1. Ark Modems can't accept any commands if the "AA" (auto answer) light  is
  4903.    on and the phone is ringing until the number of rings equals the  number
  4904.    set  in  the  S0 register.  RBBS-PC expects to  issue  a  "modem  answer
  4905.    command"  when it detects a ring and is ready.  If the Ark  modem  can't
  4906.    accept  this command, it won't answer the phone.  You  therefore  cannot
  4907.    use the ring-back system or answer on a ring greater than 1.
  4908. 2. Another  interesting difference is that when the modem is in the  "quiet
  4909.    mode" (Q1) NO results will be sent to the computer.  If we inquire as to
  4910.    the number of rings received, it responds with absolutely nothing.
  4911. 3. In  the  Ark  Normal mode, if you enter a reset command  ATZ  or  Z,  it
  4912.    requests a confirmation of  "Confirm (Y/N) >" and you must enter a Y  or
  4913.    else  it  does  nothing.  We can get around this with  a   ATV0Z   which
  4914.    tricks this into an un-conditional reset.
  4915. 4. If  you attempt to operate in the ARK NORMAL mode at 2400 baud  and  set
  4916.    the DTE/CLOCK jumper to E8-E9, the modem will "downshift" to a baud rate
  4917.    to  match  the caller, which is normal.  Assuming you downshift  to  300
  4918.    baud  you must reset it with a ATZ at 300 Baud.   RBBS resets it at  the
  4919.    initial  rate of 2400 baud and therefore the modem is "hung".  Obviously
  4920.    this is not recommended.
  4921.  
  4922. The following modems were tested:  24K - ROM versions 2.21, 2.23, 2.31  24K
  4923. PLUS - ROM ver 3.63.
  4924.  
  4925. If you have questions on this modem contact:
  4926.  
  4927.     Dave Hacquebord,
  4928.     Sunshine Bulletin board,
  4929.     Tampa, Fl.
  4930.     Voice: 1-813-884-4267
  4931.     Data:  1-813-887-3984
  4932. RBBS-PC Version CPC17-1A                                    October 2, 1988
  4933. Copyright 1988 by D. Thomas Mack                            Page 200 of 232
  4934.  
  4935. APPENDIX M -- RBBS-PC And the Anchor Signalman Express (MK12)
  4936. -------------------------------------------------------------
  4937. The following are the switch and jumper settings for the Modem.
  4938.  
  4939.     Switch 1 = Off
  4940.     Switch 2 = Off
  4941.     Switch 3 = On
  4942.     Switch 4 = On
  4943.     Switch 5 = On
  4944.     Switch 6 = On
  4945.     Switch 7 = On
  4946.     Switch 8 = On
  4947. RBBS-PC Version CPC17-1A                                    October 2, 1988
  4948. Copyright 1988 by D. Thomas Mack                            Page 201 of 232
  4949.  
  4950. APPENDIX N -- RBBS-PC and the Everex 2400 modem switch settings
  4951. ---------------------------------------------------------------
  4952. The Everex Evercom 24 is an internal 2400 BAUD modem.  It has 4 switches on
  4953. the mounting bracket.  If you are using COM1 then all switches should be in
  4954. the OFF position.  If you are using COM2 see the Installation Guide for the
  4955. correct switch settings.
  4956.  
  4957. The  Evercom does not have non-volatile memory like the Hayes 2400 and  the
  4958. ATZ command will reset the modem to factory defaults.  It is therefore  not
  4959. necessary  to use CONFIG to set the Hayes 2400 defaults.  Because  of  this
  4960. major  difference you must use CONFIG parameter 225 to change the  standard
  4961. modem defaults.  Select parameters 2 and 5 and enter the command just as it
  4962. is but with the addition of &D2.  This will instruct RBBS-PC to add &D2  to
  4963. the  standard  modem initialization string each time the  system  recycles.
  4964. Please  note that although the Evercom 24 manual indicates that &D2 is  the
  4965. default that this is a misprint in their manual and &D0 is the real default
  4966. for  the  &D command.  Parameter 7 can be ignored since they this   is  for
  4967. battery backed up modems only.
  4968.  
  4969. NOTE:   Make sure that &D2 is inserted immediately following the "AT"  when
  4970. modifying parameters 2 and 5 of parameter 225!
  4971.  
  4972. A special thanks goes to Carl Margolis (Everex) for his help in identifying
  4973. these restrictions so that Evercom 24 users can now reliably use RBBS-PC.
  4974.  
  4975. Do not select parameter 225 if you are using an Everex 1200 BAUD modem.
  4976. RBBS-PC Version CPC17-1A                                    October 2, 1988
  4977. Copyright 1988 by D. Thomas Mack                            Page 202 of 232
  4978.  
  4979. APPENDIX O -- RBBS-PC and the Prometheus 2400G modem switch settings
  4980. --------------------------------------------------------------------
  4981. Underneath  the  2400G is a bank of 10 switches that set certain  operating
  4982. characteristics of the ProModem 2400G.  Only 3 (1,2 & 10) of these switches
  4983. are  currently implemented.   The others are reserved for future expansion.
  4984. All  three of these switches must be in the off position for the  2400G  to
  4985. function properly with RBBS-PC.
  4986. RBBS-PC Version CPC17-1A                                    October 2, 1988
  4987. Copyright 1988 by D. Thomas Mack                            Page 203 of 232
  4988.  
  4989. APPENDIX P -- RBBS-PC and The US Robotics Modems Switch Settings
  4990. ----------------------------------------------------------------
  4991. Both  the  US Robotics COURIER 2400 and COURIER HST modem  switch  settings
  4992. should be as follows:
  4993.  1 2 3 4 5 6 7 8 9 10   gang switch
  4994.  U U U D D U U D D D      UUU        (Where U = Up = Off and  D = Down = On )
  4995.  
  4996. The  Courier  2400  is a high quality, trouble free modem  that  is  highly
  4997. recommended and which works well with all the RBBS-PC defaults.
  4998.  
  4999. The USR COURIER HST modem switch setting should be as follows:
  5000.  1 2 3 4 5 6 7 8 9 10   gang switch
  5001.  U U U D D U U D D U      UUU        (Where U = Up = Off and  D = Down = On )
  5002.  
  5003. RBBS-PC supports both modes of the USR HST Modems.
  5004.  
  5005. MODE 1:
  5006. -------
  5007. In  the first mode of operation, CONFIG parameter 228 should be set to  the
  5008. highest speed you intend to support.  When the HST modem detects a carrier,
  5009. it sends (at the baud rate set in parameter 228) an ASCII string to RBBS-PC
  5010. which contains the new BAUD rate.  The modem will change it's baud rate  to
  5011. match that of the caller's and RBBS-PC will correctly adjust to the modem's
  5012. new baud rate.  The following CONFIG parameters should be set:
  5013.  
  5014. Parameter 222 -- set to 3 to allow the modem enough time to initialize
  5015. Parameter 223 -- set to 2
  5016. Parameter 227 -- set to NO
  5017. Parameter 228 -- set to 9600
  5018. Parameter 237 -- set to NO
  5019. Parameter 244 -- set to YES
  5020. Parameter 245 -- set to NO
  5021.  
  5022. You should also reply "NO" to parameter 225, CONFIG will show you a menu of
  5023. 8  different modem commands.  The ONLY command that needs to be changed  is
  5024. number 7, "Initialize the modem firmware".  It should be:
  5025.  
  5026.           AT&A1&B0&H1&I0&M4&N0&R2&S1&Y3
  5027.  
  5028. The meaning of this HST-specific initialization string is as follows:
  5029. &A1 = Display/ARQ result codes
  5030. &B0 = DTE/DCE rate follows connection rate
  5031. &H1 = Hardware (Clear To Send, Pin 5) flow control
  5032. &I0 = Flow control disabled
  5033. &M4 = Normal if ARQ connection cannot be made
  5034. &N0 = Negotiate highest possible link rate with remote modem
  5035. &R2 = Received data output to terminal on Request to Send high (Pin 4)
  5036.       NOTE:  If your HST 9600 modem responds 961 or greater to the ATI
  5037.              command, substitute &R1 for &R2.
  5038. &S1 = Modem controls Data Set Ready
  5039. &Y3 = Nondestructive, unexpedited break signal
  5040.  
  5041. The highest effective data transmission rate in this mode is 9600 baud.
  5042. RBBS-PC Version CPC17-1A                                    October 2, 1988
  5043. Copyright 1988 by D. Thomas Mack                            Page 204 of 232
  5044.  
  5045. MODE 2:
  5046. -------
  5047. In  this  second  mode  the USR Modem supports  the  MNP  data  compression
  5048. technique  which  effectively  transmits data over the phone  at  rates  in
  5049. excess of 17K baud.  Setting up your HST to support both the standard  300,
  5050. 1200,  2400, and the higher 9600 and 17K baud rates requires that  the  HST
  5051. modem  speed  be  "fixed"  at 19.2K baud.   The  PC  running  RBBS-PC  will
  5052. communicate  with the HST modem attached to it at a fixed rate  of  19.2KB.
  5053. The  actual  data  link speed will default to the  highest  rate  that  the
  5054. caller's modem will support.
  5055.  
  5056. Parameter 222 -- set to 3 to allow the modem enough time to initialize
  5057. Parameter 223 -- set to 2
  5058. Parameter 227 -- set to NO
  5059. Parameter 228 -- set to 19200
  5060. Parameter 237 -- set to YES
  5061. Parameter 244 -- set to YES
  5062. Parameter 245 -- set to NO
  5063.  
  5064. You should also reply "NO" to parameter 225, CONFIG will show you a menu of
  5065. 8  different modem commands.  The ONLY command that needs to be changed  is
  5066. number 7, "Initialize the modem firmware".  It should be:
  5067.  
  5068.           AT&A1&B1&H1&I0&M4&N0&R2&S1&Y3
  5069.  
  5070. The meaning of this HST-specific initialization string is as follows:
  5071. &A1 = Display/ARQ result codes
  5072. &B1 = DTE/DCE rate is fixed at allowable rate
  5073. &H1 = Hardware (Clear To Send, Pin 5) flow control
  5074. &I0 = Flow control disabled
  5075. &M4 = Normal if ARQ connection cannot be made
  5076. &N0 = Negotiate highest possible link rate with remote modem
  5077. &R2 = Received data output to terminal on Request to Send high (Pin 4)
  5078.       NOTE:  If your HST 9600 modem responds 961 or greater to the ATI
  5079.              command, substitute &R1 for &R2.
  5080. &S1 = Modem controls Data Set Ready
  5081. &Y3 = Nondestructive, unexpedited break signal
  5082.  
  5083. This  will enable the COURIER HST to use the built-in MNP protocol  at  the
  5084. highest possible baud rate that can be negotiated with the calling modem --
  5085. providing  the  calling  modem is also a COURIER HST  modem.   The  highest
  5086. effective data transmission rate in this mode is 17200 baud.
  5087.  
  5088. After  replying NO to CONFIG parameter 225 and changing the  initialization
  5089. modem  command  as  described above for either MODE 1 or  MODE  2  for  the
  5090. COURIER HST, CONFIG parameter 231 should be selected in order to initialize
  5091. the COURIER HST.  This places the setting in the HST's non-volatile  random
  5092. access  memory  (NVRAM) and need only be repeated if the NVRAM  is  changed
  5093. (i.e.  you use the modem with applications other than RBBS-PC  that  change
  5094. the NVRAM).
  5095.  
  5096. For  the COURIER 2400, set CONFIG parameter 228 to 2400.  For  the  COURIER
  5097. HST, set parameter 228 as specified above for either MODE 1 or MODE 2.
  5098. RBBS-PC Version CPC17-1A                                    October 2, 1988
  5099. Copyright 1988 by D. Thomas Mack                            Page 205 of 232
  5100.  
  5101. APPENDIX Q -- RBBS-PC and the FASTCOMM 2496 Turbo Modem
  5102. -------------------------------------------------------
  5103. The  FASTCOMM  2496 9600 and 19200 baud modems work  with  RBBS-PC  without
  5104. modifications to RBBS-PC.
  5105.  
  5106. However  some  unusual quirks were noted with the FASTCOMM  hardware.   The
  5107. modems  would  NOT  follow terminal baud rate in the command  mode  if  the
  5108. transition  was from 300 to 9600 (or 19,200) baud.  Therefore,  if  RBBS-PC
  5109. were  configured to initially operate at 9600 baud, it would  not  properly
  5110. reset  after a 300 baud call.  It would, however, follow all other  changes
  5111. within  the range of RBBS-PC.  If it was configured to initially answer  at
  5112. both 2400 and 4800 baud and it worked equally well with calls at 300, 1200,
  5113. 2400,  4800,  9600  and 19200 baud for both cases.   Therefore  set  CONFIG
  5114. parameter 208 to 2400 baud!
  5115.  
  5116. It is recommended that CONFIG parameter 224 be set to answer on one ring!
  5117.  
  5118. Specific instructions for modem set up are as follows:
  5119.  
  5120. 1. Using  the  BASIC  program  SETFC.BAS  below,  set   the  default  modem
  5121.    settings.   This   can  also  be done  manually  from  a  communications
  5122.    program.  The speed that is used to establish the default modem settings
  5123.    is  the speed to which the modem defaults on reset and power on.  It  is
  5124.    best  to  do  this setup at the same speed that  RBBS-PC  uses  as   its
  5125.    default speed, namely 2400 baud. In any case do not do it at 9600 baud.
  5126.  
  5127. 2. Tell RBBS-PC to open the modem at 2400 baud by setting CONFIG  parameter
  5128.    208 to 2400 baud.
  5129.  
  5130. 3. Use CONFIG parameter 225 to change the modem reset command from "ATZ" to
  5131.    "AAATZ".  This string of A's resets the modem to the terminal baud  rate
  5132.    so  it  can respond to the other commands.  If you want  to  experiment,
  5133.    watch  the  modem  respond to you when you change  baud  rates  in  your
  5134.    favorite communications program.  This modem function is referred to  as
  5135.    "autobaud".  You will probably not see the first "A" echo and  sometimes
  5136.    not  the  second.  You should always see the  third  "A".   Others  have
  5137.    advised  that their modems would "autobaud" from 300 to 9600 baud.  Mine
  5138.    would not.
  5139.  
  5140. 4. Use CONFIG parameter 225 to change the modem answer string to include X2
  5141.    instead of X1 (the CONFIG default).
  5142.  
  5143. Stan  Staten  has extensive experience with RBBS-PC and the  FASTCOMM  2496
  5144. modems.   If you have any questions regarding their use with RBBS-PC,  give
  5145. Stan's RBBS-PC system a call at (301) 869-7650.
  5146.  
  5147. On the next page is STAN's SETFC.BAS program's BASIC source code to set the
  5148. FASTCOMM  modem.   It  can be run under the BASIC  interperter  or  can  be
  5149. compiled  using QuickBASIC from Microsoft.  SETFC.EXE and  SETFC2.EXE  (for
  5150. COM2:) can be downloaded from Stan's BBS.
  5151. RBBS-PC Version CPC17-1A                                    October 2, 1988
  5152. Copyright 1988 by D. Thomas Mack                            Page 206 of 232
  5153.  
  5154. 10   'title: 'SETFC.BAS, Copyright 1986 by H. Stanley Staten
  5155. 20   'SYSOP 3 WINKs BBS, 301-670-9621
  5156. 30   '
  5157. 40      DEFINT A-Z
  5158. 50      CLEAR
  5159. 60  '
  5160. 70  ' ********************************************************************
  5161. 80  ' * ROUTINE TO INITIALIZE THE FASTCOMM 2496 MODEM'S FIRMWARE         *
  5162. 90  ' ********************************************************************
  5163. 100  '
  5164. 110  COM.PORT$ = "COM1"                 'Change to "COM2:" for COM2: use
  5165. 120  PRINT "Setting FASTCOMM 2496 firmware for RBBS-PC on " + COM.PORT$
  5166. 130  '
  5167. 140  ' *********************************************************************
  5168. 150  ' *                                                                   *
  5169. 160  ' * INITIALIZE THE FASTCOMM 2496 VOLATILE MEMORY.  SET THE FOLLOWING: *
  5170. 170  ' *                                                                   *
  5171. 180  ' *         AT#F        = Set to factory defaults                     *
  5172. 190  ' *         AT#LCN      = Set carrier detect to normal                *
  5173. 200  ' *         AT#LDN      = Set DTR to normal                           *
  5174. 210  ' *         AT#LX2      = Set for XON/XOFF flow control               *
  5175. 220  ' *         ATS7=30     = Set wait for answer tone to 30 seconds      *
  5176. 230  ' *         ATM0        = Turn speaker off                            *
  5177. 240  ' *         ATV1        = Issue long form of results codes            *
  5178. 250  ' *         ATX2        = Full result messages                        *
  5179. 260  ' *         ATS57=1     = Hang up and reset automatically executed    *
  5180. 270  ' *         ATE0        = Do not echo modem commands back to the PC   *
  5181. 280  ' *         ATS10=10    = To cause to reset on loss of carrier faster *
  5182. 290  ' *         ATS58=3     = Force a 19200 Baud call to 9600 Baud locally*
  5183. 300  ' *         ATS22=46    = Suggested by the vendor                     *
  5184. 310  ' *         ATS0=0      = Don't answer until told to.                 *
  5185. 320  ' *         AT#W        = Write settings to non volatile memory       *
  5186. 330  ' *                                                                   *
  5187. 340  ' *********************************************************************
  5188. 350  '
  5189. 360  OPEN COM.PORT$ + ":2400,N,8,1,RS,CD,DS" AS #3
  5190. 370  PRINT #3,"AAAAAAAT"
  5191. 380  PRINT #3,"AT#F"
  5192. 390  PRINT #3,"AT#LCN"
  5193. 400  PRINT #3,"AT#LDN"
  5194. 410  PRINT #3,"AT#LX2"
  5195. 420  PRINT #3,"ATS7=30"
  5196. 430  PRINT #3,"ATM0"
  5197. 440  PRINT #3,"ATV1"
  5198. 450  PRINT #3,"ATX2"
  5199. 460  PRINT #3,"ATS57=1"
  5200. 470  PRINT #3,"ATE0"
  5201. 480  PRINT #3,"ATS10=10"
  5202. 490  PRINT #3,"ATS58=3"
  5203. 500  PRINT #3,"ATS22=46"
  5204. 510  PRINT #3,"ATS0=0"
  5205. 520  PRINT #3,"AT#W"
  5206. 530  SYSTEM
  5207. RBBS-PC Version CPC17-1A                                    October 2, 1988
  5208. Copyright 1988 by D. Thomas Mack                            Page 207 of 232
  5209.  
  5210. APPENDIX R -- RBBS-PC and the ZOOM Modem HC2400
  5211. -----------------------------------------------
  5212. In  order to use the "ZOOM HC2400" modem with RBBS-PC parameter 225  should
  5213. be changed as shown below.  Only #2 and #5 need to be changed.
  5214.  
  5215. Changes in #2.  Add '&D2' just after  'AT'.  Change 'S2=255' to 'S2=43'.
  5216.  
  5217. Change  in #5.  Add "&D2' just after  'AT'.
  5218.  
  5219. 1. Reset the modem                : ATZ
  5220. 2. Initialize the modem           : AT&D2M0Q1S2=43S10=30E0Q0X1S0=0
  5221.    Note: End item 2 with:
  5222.      S0=1Q0X1 if answer on 0 rings
  5223.      S0=254 if answer on >0 rings (no ring-back)
  5224.      S0=255 if answer on >0 rings (with ring-back)
  5225. 3. Count the number of rings      : ATS1?
  5226. 4. Answer the phone               : ATQ0X1V1A
  5227. 5. Take the phone off the hook    : AT&D2Q1E1H1M0
  5228. 6. Clear the modem's firmware     : AT&F
  5229. 7. Initialize modem's firmware    : AT&C1&D3B1E0V1M0S0=0&T5
  5230.    Note: End item 7 with:
  5231.      Q1 if item 2 ends with S0=255
  5232. 8. Write to modem's firmware      : &W
  5233.  
  5234. For  further information contact:
  5235. Jeff L. Watts
  5236. STATESVILLE RBBS-PC
  5237. Data # (704) 873-8482
  5238. RBBS-PC Version CPC17-1A                                    October 2, 1988
  5239. Copyright 1988 by D. Thomas Mack                            Page 208 of 232
  5240.  
  5241. APPENDIX S -- RBBS-PC And The AT's RS-232 Cable
  5242. -----------------------------------------------
  5243. The RS-232 serial connector is different for the AT than the PC or XT.  The
  5244. AT  uses  a  connector  called a DB-9,  which is a  9  pin  connector.   An
  5245. alternative to buying the AT serial cable from IBM,  ($65-$80),  is to make
  5246. your own.  A ten-wire cable  can be purchased from any local computer store
  5247. for about $.80 per foot,  and the DB-9 and RS-232 connectors with hoods can
  5248. be purchased from Radio Shack.   The total cost should be about $12.00.   A
  5249. modem  hooked up to the AT will work fine with the 9 pins connected in  all
  5250. terminal functions, except for auto-answer applications such as RBBS-PC.
  5251.  
  5252. RBBS-PC requires pin 1 from the modem to be hooked up to the chassis ground
  5253. on the AT or it can't answer the phone.   There are two ways to hook up the
  5254. ground wire on the computer end.   The first way is to use a metal hood  to
  5255. cover  the DB-9 connector.   Wrap a bare wire that is attached to pin 1  of
  5256. the RS-232 connector around the cable on the DB-9 end.  When the metal hood
  5257. is  screwed down over the cable a connection will be made.   When  using  a
  5258. plastic  DB-9 hood simply solder a wire from pin 1 on the RS-232 end to the
  5259. metal  body of the DB-9 connector.   Since documentation is scarce for  the
  5260. AT,  following figure lists the necessary pin connections for those wanting
  5261. to make their own AT RS-232 cable.
  5262.  
  5263.    DB-9       RS-230
  5264. (Computer     (Modem           Description
  5265.    End)        End)
  5266. =========    =======        ==================
  5267.  
  5268.  GROUND -------- 1 -------- Protective Ground
  5269.    1    -------- 8 -------- Data Carrier Detect
  5270.    2    -------- 3 -------- Receive Data
  5271.    3    -------- 2 -------- Transmit Data
  5272.    4    ------- 20 -------- Data Terminal Ready
  5273.    5    -------- 7 -------- Signal Ground
  5274.    6    -------- 6 -------- Data Set Ready
  5275.    7    -------- 4 -------- Request to Send
  5276.    8    -------- 5 -------- Clear to Send
  5277.    9    ------- 22 -------- Ring Indicator
  5278. RBBS-PC Version CPC17-1A                                    October 2, 1988
  5279. Copyright 1988 by D. Thomas Mack                            Page 209 of 232
  5280.  
  5281. APPENDIX T -- RBBS-PC And BASIC Compiler Patches for "Doors"
  5282. ------------------------------------------------------------
  5283. Both the IBM Version 2.0 BASIC compiler and Microsoft's QuickBASIC compiler
  5284. offers  a lot of needed features to compiled BASIC programs.   Regrettably,
  5285. they also included  a few "problems."
  5286.  
  5287. For  those  who use RBBS-PC to "exit" to DOS (either via a "door" or  as  a
  5288. remote  SYSOP),  the code generated by the new BASIC compilers would "help"
  5289. you  by dropping carrier when you chose to return to RBBS-PC from DOS or  a
  5290. "door."  Help like this RBBS-PC didn't need.
  5291.  
  5292. Jeff  Porter was the first to document a six step "patch" to the IBM  BASIC
  5293. Version  2.0  compiler  and  to BCOM10.LIB of the  QuickBASIC  Version  1.0
  5294. compiler that corrects this problem within the logic of the code  generated
  5295. by the QuickBASIC compiler.  Subsequently, Rod Bowman of "The PC Spectrum",
  5296. (714) 945-2612,,  subsequently,  provided similar patches to the BCOM20.LIB
  5297. of the QuickBASIC Version 2.0 and 2.01 compiler.
  5298.  
  5299. As I stated earlier:
  5300.  
  5301.      "RBBS-PC continues to grow and expand because hundreds
  5302.       (and quite possibly thousands) of SYSOP's spend the
  5303.       time and trouble not only to modify RBBS-PC to meet
  5304.       their needs, but also to share these modifications
  5305.       with others."
  5306.  
  5307. Please note that nowhere in the following documentation does Jeff  describe
  5308. the  hours and hours it must have taken him to find the fix to the problem.
  5309. Nowhere does he ask anything for himself for his efforts.   As I have  said
  5310. so often "I am very proud of the company that RBBS-PC keeps."
  5311.  
  5312. 1. DTR Patches for the QuickBASIC Version 1.x through 3.0 Compilers
  5313. -------------------------------------------------------------------
  5314. As  anyone  who has tried to write any programs that use  COM1:   or  COM2:
  5315. with  MicroSoft QuickBasic knows,  the DTR modem control line  is   dropped
  5316. every time a a communication file is opened or closed.  The original  patch
  5317. for  the  BASIC compiler was developed by Jeff  Porter.   Subsequently  Rod
  5318. Bowman supplied patches for the QuickBASIC compilers that followed.  The 10
  5319. step procedure (7 if you have QuickBASIC 2.0 or above) is as follows:
  5320.  
  5321.  1. Copy BCOMxx.LIB to BCOMxxBK.LIB where:
  5322.  
  5323.           xx = 10 for QuickBASIC Version 1.0, 1.1, and 1.2
  5324.              = 20 for QuickBASIC Version 2.0 and 2.01
  5325.              = 30 for QuickBASIC Version 3.0
  5326.  
  5327.  2. Run DEBUG and load BCOMxx.LIB with the command:
  5328.  
  5329.           DEBUG BCOMxx.LIB
  5330.  
  5331.  3. Display the following section of data with the command
  5332.  
  5333.           -dZZZZ L 10
  5334. RBBS-PC Version CPC17-1A                                    October 2, 1988
  5335. Copyright 1988 by D. Thomas Mack                            Page 210 of 232
  5336.  
  5337.      where ZZZZ = 0540 for QuickBASIC Version 1.0, 1.1, and 1.2
  5338.                 = D368 for QuickBASIC Version 2.0
  5339.                 = D858 for QuickBASIC Version 2.01
  5340.                 = DC08 for QuickBASIC Version 3.0
  5341.  
  5342.  4. Verify the the data displayed contains the following sequence
  5343.  
  5344.     nnnn:ZZZZ  83 C2 04 32 C0 EE EB
  5345.  
  5346.     If the data displayed contains the above sequence of numbers (they  may
  5347.     be contained within the other numbers displayed), continue.  Otherwise,
  5348.     go to section 2.
  5349.  
  5350.  5. Assemble in the correct instructions for the patch as follows:
  5351.  
  5352.     Enter the command "-a QQQQ"
  5353.  
  5354.      where QQQQ = 054C for QuickBASIC Version 1.0, 1.1, and 1.2
  5355.                 = D36B for QuickBASIC Version 2.0
  5356.                 = D85B for QuickBASIC Version 2.01
  5357.                 = DC0B for QuickBASIC Version 3.0
  5358.  
  5359.     The  system  will respond with the prompt "nnnn:QQQQ" where  "nnnn"  is
  5360.     what was shown in step 5 and QQQQ is what was entered in step 5.  After
  5361.     this  prompt  enter a space and the instructions "mov  al,  1".   Press
  5362.     enter and at the next prompt hit enter without entering anything.  This
  5363.     second enter informs DEBUG that you are finished assembling.
  5364.  
  5365.  6. If  you  are not patching QuickBASIC Version 1.x, continue to  step  9.
  5366.     For  QuickBASIC Version 1.x, there is a second place that needs  to  be
  5367.     corrected.  Display the following section of data with the command
  5368.  
  5369.           -d830 L 10
  5370.  
  5371.  7. Verify the the data displayed contains the following sequence
  5372.  
  5373.     rrrr:0830  83 C2 04 32 C0 EE EB
  5374.  
  5375.     If it doesn't, then go to section 2.  It it does continue on
  5376.  
  5377.  8. Assemble in the correct instructions for the patch as follows:
  5378.  
  5379.     Enter  the command "-a 0839".  The system will respond with the  prompt
  5380.     "rrrr:0839"  where  "nnnn"  is what was shown in step  6.   After  this
  5381.     prompt enter a space and the instructions "mov al, 1".  Press enter and
  5382.     at  the next prompt hit enter without entering anything.   This  second
  5383.     enter informs DEBUG that you are finished assembling.
  5384.  
  5385.  9. Now  write the modified BASCOMxx.LIB out by issuing the command "w"  at
  5386.     the prompt (i.e. "-w").
  5387.  
  5388. 10. Finally,  quite  the DEBUG session by issuing the command  "q"  at  the
  5389.     prompt (i.e. "-q").
  5390. RBBS-PC Version CPC17-1A                                    October 2, 1988
  5391. Copyright 1988 by D. Thomas Mack                            Page 211 of 232
  5392.  
  5393. 2.  Jeff Porter's DTR Patches for the IBM BASIC Version 2.0 Compiler
  5394. --------------------------------------------------------------------
  5395. If  you  do  not  have  MicroSoft QuickBasic or  if  you  have  a different
  5396. version than I,   you can probably still  perform  this patch.    You  will
  5397. have  to find the correct locations to  patch.   The  addresses  054C   and
  5398. 0839 were  found  with  the  following procedure:
  5399.  
  5400. 1.   Search  for the byte sequence 83 C2 04 32 C0 in the  library
  5401.      file.   If you are lucky,  debug will find it in exactly two
  5402.      places.
  5403.      (for example:)
  5404.      -s 100 fff0 83 C2 04 32 C0
  5405. 2.   Unassemble   the  addresses  you  found.    The  first   two
  5406.      instructions will be
  5407.           ADD  DX, +04
  5408.           XOR  AL, AL
  5409.      Within the next few instructions should be
  5410.           OUT  DX, AL
  5411. 3.   If everything has gone correctly so far, just change the
  5412.           XOR  AL, AL
  5413.      to a
  5414.           MOV AL, 1
  5415. 4.   Perform this change in both places where the
  5416.           XOR AL, AL
  5417.      instruction was found.
  5418. 5.   Write the updated file.
  5419.  
  5420. 3.  DTR Patch for the QuickBASIC Version 4.0 Compiler
  5421. -----------------------------------------------------
  5422. The following are the instructions for modifying the orginal QuickBASIC 4.0
  5423. to keep DTR from dropping when returning from DOS/DOORS while running RBBS-
  5424. PC.
  5425.  
  5426. 1.   Make a backup copy of the BCOM40.LIB file, just in case.
  5427. 2.   Run debug and load BCOM40.LIB
  5428.      A>debug bcom40.lib
  5429. 3.   Display  the  following sections of data and see  that  they
  5430.      match.   This is to insure that you are patching the correct
  5431.      version of the library.
  5432.      -d 100 L 5
  5433.      xxxx:0100  F0 OD 00 00 CA
  5434. 4.   xxxx  may  be different for each computer.  Add 850 (hex) to  xxxx  in
  5435.      order  to calculate yyyy.  Remember these are hexadecimal numbers  and
  5436.      this is hexadecimal addition.
  5437. 5.   Search for two occurances of the offending code.
  5438.      -s yyyy:0 FFFF 83 C2 04 32
  5439.      YYYY:A53F
  5440.      YYYY:A809
  5441. 6.   Unassemble the six bytes of code at the first location.
  5442.      -u YYYY:A53F L 6
  5443.      YYYY:A53F 83C204    ADD  DX,+04
  5444.      YYYY:A542 32C0      XOR  AL,AL
  5445.      YYYY:A544 EE        OUT  DX,AL
  5446.      If this is not what you find, do not proceed further.
  5447. RBBS-PC Version CPC17-1A                                    October 2, 1988
  5448. Copyright 1988 by D. Thomas Mack                            Page 212 of 232
  5449.  
  5450. 7.   Now unassemble the six bytes of code at the second location.
  5451.      -u YYYY:A809 L 6
  5452.      YYYY:A809 83C204    ADD  DX,+04
  5453.      YYYY:A80C 32C0      XOR  AL,AL
  5454.      YYYY:A80E EE        OUT  DX,AL
  5455.      If this is not what you find, do not proceed further.
  5456. 8.   Now change the code at the first location by assembling
  5457.      -a YYYY:A542
  5458.      YYYY:A542 MOV AL,1
  5459.      YYYY:A544
  5460. 9.   Now change the code at the second location by assembling
  5461.      -a YYYY:A80C
  5462.      YYYY:A80C MOV AL,1
  5463.      YYYY:A80E
  5464. 10.  The patch is complete -- write the file back to disk and quit debug.
  5465.      -w
  5466.      Writing  331DD BYTES
  5467.      -q
  5468.  
  5469. This  patch  was  developed by Rod Bowman of The  PC-Spectrum  RBBS-PC  and
  5470. documented by Jon Martin of the AIRCOMM RBBS-PC (415) 689-2090.
  5471.  
  5472. The  original  QuickBASIC  Version  4.0  has  a  know  bug  that  precludes
  5473. applications  that  SHELL  to other applications  when  both  the  SHELLing
  5474. application  the  application  SHELLed to access  the  communication  port.
  5475. Therefore, RBBS-PC is distributed compiled under Version 3.0 of QuickBASIC.
  5476. The  practical  effect of this QB4 bug is that the external  file  transfer
  5477. programs  can't be SHELLed to from RBBS-PC when RBBS-PC has  been  compiled
  5478. with QB4.
  5479.  
  5480. This DTR patch for QB4 does NOT fix the Microsoft SHELL problem in QB4!
  5481.  
  5482. After  QuickBASIC  Version 4.0 was initially  released,  Microsoft  started
  5483. shipping   a  QuickBASIC  Version  4.0B  that  does  have  the  DTR   patch
  5484. incorporated  in it and "may" fix the SHELLing problem.  However, this  has
  5485. not yet been verified by RBBS-PC.
  5486.  
  5487. 4.  DTR Patch for the BASIC Version 6.0 Compiler
  5488. -----------------------------------------------------
  5489. This is a patch for BASCOM 6.0 that corrects the DTR/carrier drop  problem.
  5490. Bob Eyer developed it and Steve Kling verified that the patch work.   There
  5491. are  two  places in BASCOM's BCOM60ER.LIB that need patching.   Each  place
  5492. requires a substitution for the following code:
  5493.  
  5494.        83C204        ADD      DX, +04
  5495.        32C0          XOR      AL, AL
  5496.        EE            OUT      DX,AL
  5497.  
  5498. Just as in QB 1.x, the statement XOR AL, AL has to be changed to MOV AL, 1.
  5499. First make a backup of BCOM60ER.LIB.  Using Norton (or any good sector  mod
  5500. program),  search  for  83C20432C0EE.  This string  only  occurs  twice  in
  5501. BCOM60ER.LIB  unlike QB, so any match needs patching.  When  found,  change
  5502. 32C0  to  B001 and do it again.  B001 is the opcode for MOV AL,  1  whereas
  5503. from above you can see that 32C0 is XOR AL,AL.
  5504. RBBS-PC Version CPC17-1A                                    October 2, 1988
  5505. Copyright 1988 by D. Thomas Mack                            Page 213 of 232
  5506.  
  5507. APPENDIX U -- Using RBBS-PC to access Data Bases Remotely
  5508. ---------------------------------------------------------
  5509. 1.  The Need for Data Base Services
  5510.  
  5511. A  feature  that  has been long missing from PC  based  host  communication
  5512. systems is the ability for SYSOPs to install customized data bases and  let
  5513. callers run true interactive data base queries against them.  Because  data
  5514. base management is a major programming task, the most promising way to  add
  5515. data  base  services is to uses RBBS-PC's original  and  innovative  "DOOR"
  5516. mechanism  to exit RBBS-PC and have the remote user enter an existing  data
  5517. base management program.
  5518.  
  5519. "DOOR"ing to a data base management program, however, is not as easy as one
  5520. might  hope.   The  major  problems  stem from  the  fact  that  data  base
  5521. management  programs are never designed to work in this environment.   This
  5522. is because:
  5523.  
  5524. 1. Most  programs  write  to the hardware for speed rather  than  use  bios
  5525.    calls, causing the "screen" output to appear on the host terminal rather
  5526.    than on the caller's terminal.
  5527. 2. Data  base programs do not monitor for carrier.  If carrier  drops  they
  5528.    simply sit forever waiting for input rather than terminating.
  5529. 3. Most use "full screen" rather than "line at a time", which usually  does
  5530.    not work properly on a remote terminal.
  5531. 4. Security.  Most data base programs have no way to limit what a user  can
  5532.    do.   For example, they do not have a read-only mode, or the ability  to
  5533.    restrict  a user to specific files or fields.  Many let the  user  issue
  5534.    dos commands inside them, which gives to call too much power.
  5535. 5. Difficulty in learning to use.  A caller can hardly be expected to  know
  5536.    how  to  use a data base.   Hence it must be possible  to  simplify  and
  5537.    control the user interface inside the data base package.
  5538.  
  5539. Progress has been made with two of the most popular PC data bases -- ORACLE
  5540. and dBASE!
  5541.  
  5542. Using dBASE "DOORS" with RBBS-PC
  5543. --------------------------------
  5544. db/LIB  is  a relatively new piece of software by AJS Publishing  of  North
  5545. Hollywood, CA that makes remote dBASE access possible.  db/LIB is a set  of
  5546. two  assembled  libraries which can be used to   create/modify  dBASE  data
  5547. structures, create/update dBASE indices, and naturally manipulate the dBASE
  5548. records.    These   libraries  also  have  many  replacements   for   dBASE
  5549. functions/commands  not  easily  replicated  (ie.  IIF,  RECNO(),   DATE(),
  5550. RTRIM(), DELETED(), etc.) outside of the dBASE environment.
  5551.  
  5552. db/LIB  was designed to work with Microsoft Quick BASIC and BASIC  Compiler
  5553. 6.0, but it should work with any high level Microsoft language.
  5554.  
  5555. dBASE Remote Access Advantages/Disadvantages
  5556.  
  5557. Combine  db/LIB with any well written door skeleton (such as the very  fine
  5558. skeleton  written by Phil Dewitt) and you can have a true shareable  remote
  5559. database  system.    The following section highlights some  advantages  and
  5560. addressess the problems concerning remote dBASE database access.
  5561. RBBS-PC Version CPC17-1A                                    October 2, 1988
  5562. Copyright 1988 by D. Thomas Mack                            Page 214 of 232
  5563.  
  5564. Advantages of using db/LIB and dBASE data bases:
  5565.  
  5566. 1.   Purchase  of  dBASE  is not required.  db/LIB can  create  modify  and
  5567.      maintain any dBASE structure.  A program with db/LIB and downloaded by
  5568.      a  third party can give these same freedoms to a third party.   Sample
  5569.      programs with db/LIB demonstrate that most of dBASE's functions can be
  5570.      replicated or subistituted using db/LIB.
  5571.  
  5572. 2.   If  dBASE  is  owned,  then the two work  very  well  in  tandem.  The
  5573.      programmers  at Ashton-Tate didn't gain their reputation  for  writing
  5574.      junkware.  By  owning  dBASE,  the  user  can  download  any  database
  5575.      structure  and  perform  any data manipulation easily  in  a  familiar
  5576.      environment.
  5577.  
  5578. 3.   Screen  writes, security, carrier monitoring, error trapping, are  all
  5579.      handled by the door skeleton.  Let database modules run the  database,
  5580.      and let the door modules run the door.
  5581.  
  5582. Disadvantages of using db/LIB and dBASE data bases:
  5583.  
  5584. 1.   Remote  dBASE database access is not the same as accessing  dBASE  III
  5585.      remotely.  Creation of these DOORS requires knowledge of Quick  BASIC,
  5586.      some  knowledge of data communications, and some knowledge  of  dBASE.
  5587.      All  end user requirements have to be anticipated, all cases  covered,
  5588.      and  created in advance.  Once the application is created,  then  user
  5589.      need no little or nothing about any of the above.
  5590.  
  5591. 2.   db/LIB doesn't provide a full ANSI editor for remote access.  This has
  5592.      been  done  in  some door skeleton's already, and  would  need  to  be
  5593.      implemented  in  order  for  the  user  to  work  in  a  full   screen
  5594.      environment.   Current working doors all use a scrolling  or  terminal
  5595.      type of display.  It isn't any harder to add an ANSI  display to  this
  5596.      type  of  door than to any other door; it's just that it  hasn't  been
  5597.      done yet.
  5598.  
  5599. For  those interested in dBASE-based on-line data base searches with  RBBS-
  5600. PC,  you  might try writing Steven Kling at 4009 Utah Ave.,  Brentwood,  MD
  5601. 20722.   Steven  is  the  author  of BBS_BASE.   BBS_BASE  is  a  dBASE  III
  5602. demonstration DOOR that maintains a database of Bulletin Board names, phone
  5603. numbers,  etc.  This database can be queried, added to, edited, and  up  to
  5604. the minute reports can be generated.  The entire database with indices  can
  5605. be  downloaded by the user for personal use.  This database is indexed  and
  5606. therefore  can  be queried either by name or phone  number.   BBS_BASE  was
  5607. written  only  as a demonstration of using RBBS-PC to access  a  data  base
  5608. remotely.  Steve is also the SYSOP of
  5609.  
  5610.        Technopeasants' EAST BBS at (301)-927-4258
  5611.        Brentwood, MD (PC Pursuitable)
  5612.        24 Hours/ 2400 baud.
  5613.  
  5614. Steven  maintains a dBASE conference, where the latest versions  of  remote
  5615. dBASE  doorware  can  be  found.  Steven is  very  interested  in  promoted
  5616. discussions,  sharing  information  in  an  effort  to  make  dBASE  remote
  5617. accessing easy for all RBBS-PC SYSOPs.
  5618. RBBS-PC Version CPC17-1A                                    October 2, 1988
  5619. Copyright 1988 by D. Thomas Mack                            Page 215 of 232
  5620.  
  5621. Using ORACLE with RBBS-PC for On-line Data Base Access
  5622. ------------------------------------------------------
  5623. Another database package that is able to be used as a "door" is ORACLE from
  5624. Oracle  Corporation  at One Oracle Parkway in  Belmont,  California  94002.
  5625. Their  number  is (415) 598-8000.  ORACLE is a very promising  solution  to
  5626. providing  remote  data  base  services.   Oracle  addresses  the  problems
  5627. mentioned earlier as follows.
  5628.  
  5629. 1.   Screen writes.  ORACLE user bios calls.  All output appears  perfectly
  5630.      normal on remote terminals through the  CTTY interface in RBBS-PC.
  5631.  
  5632. 2.   Monitor  for carrier.  Run WATCHDOG, which will reboot your system  if
  5633.      carrier drops.
  5634.  
  5635. 3.   Full screen mode.  ORACLE uses only ANSI commands to control the users
  5636.      screens.  Callers whose remote communications package implements  ANSI
  5637.      support  therefore  see full screen writes exactly the same  as  local
  5638.      users.  FULL SCREEN WORKS!
  5639.  
  5640. 4.   Security.  ORACLE has all the security you could ever want because  it
  5641.      was designed for multi-user systems.
  5642.  
  5643. 5.   Usability.   ORACLE implements SQL, which is increasingly becoming  an
  5644.      industry standard that all major data base systems are supporting.
  5645.  
  5646. Of  course, there are some problems using ORACLE in a way in which  it  was
  5647. never designed:
  5648.  
  5649. 1.   There  is  a  problem  getting the  function  keys  to  work  properly
  5650.      remotely.
  5651.  
  5652. 2.   The  ability  for a caller to use DOS commands needs  to  be  disabled
  5653.      within ORACLE.
  5654.  
  5655. 3.   Callers  who  do not know SQL need pre-structured queries and  a  menu
  5656.      interface  to  be designed for them.   ORACLE supports a  full  screen
  5657.      interface  but the user interface in ORACLE is not as programmable  as
  5658.      one would like.
  5659.  
  5660. For those interested in ORACLE-based on-line data base searches with  RBBS-
  5661. PC, you might try writing John Prior at P.O. Box 2168, Rockville, MD 20852-
  5662. 2168.  Steve is the SYSOP of
  5663.  
  5664.        SQLBBS at (301)-881-6588
  5665.        Rockville, MD (PC Pursuitable)
  5666.        24 Hours/ 2400 baud.
  5667.  
  5668. The  SQLBBS  is  a  specialized  bulletin  board  system  specializing   in
  5669. supporting  relational  data  base managers and making  the  power  of  SQL
  5670. available to callers.  SQLBBS uses an RBBS-PC door to get into ORACLE.  The
  5671. SQLBBS  has implemented ORACLE to help manage the data processing  for  the
  5672. National Council for Children's Rights (NCCR), and have several major  data
  5673. bases  on-line  for general interest.  People can contact John  Prior,  the
  5674. SQLBBS SYSOP, on Compuserve or MCI, by mail, or call SQLBBS if they wish to
  5675. RBBS-PC Version CPC17-1A                                    October 2, 1988
  5676. Copyright 1988 by D. Thomas Mack                            Page 216 of 232
  5677.  
  5678. see  how  ORACLE is implemented, get the latest progress report,  or  share
  5679. experiences  implementing  data  base services.  Here are  details  on  the
  5680. SQLBBS system and how to reach both John and it:
  5681.  
  5682. Modem:              2400 Baud Hayes
  5683. BBS Number:         301/881-6588
  5684. Hours:              24 hrs/day
  5685. Address:            Prior Computer Service Inc.
  5686.                     POB 2168
  5687.                     Rockville MD 20852-2168
  5688. Compuserve ID:      76266,1072
  5689. MCI MAIL ID:        JPRIOR
  5690. SYSOPS:             John F. Prior
  5691.                     Steve J. Prior
  5692.                     Tony Zelof
  5693. SQL Tables          Roster of the House of Representatives
  5694. Available           Roster of the Senate [both with addresses etc.]
  5695. Now                 The States [2 char abbreviation and full name]
  5696.  
  5697. Call  SQLBBS as you would any other RBBS-PC system.  Go through  the  Door.
  5698. SQLBBS  executes a "SELECT * FROM TAB;" for you which shows you the  tables
  5699. and  views you can access.  At the UFI> prompt execute any  SELECT  command
  5700. you want against any table or view.
  5701.  
  5702. "SELECT * FROM STATES;"                     returns  all rows [records]  of
  5703.                                             the STATES table.
  5704.  
  5705. "SELECT  * FROM STATES WHERE ST = 'MA';"    returns  all  rows  about   the
  5706.                                             state whose two-character  code
  5707.                                             is "MA".
  5708.  
  5709. "SELECT COUNT(*) FROM STATES;"              gives  you a count of the  rows
  5710.                                             in the STATES table.
  5711.  
  5712. If  you substitute another table or view instead of STATES such as  SENATE,
  5713. you can access other tables/views.
  5714.  
  5715. "DESC HOUSE"                                would  return the column  names
  5716.                                             of the HOUSE table.
  5717.  
  5718. "HELP"                                      gets you help.
  5719.  
  5720. "HELP SELECT"                               gets  you  help on  the  SELECT
  5721.                                             command.
  5722.  
  5723. "HELP SET"                                  gets   you  help  on  the   SET
  5724.                                             command which can control  many
  5725.                                             options for display etc.
  5726.  
  5727. "SHOW ALL"                                  shows  you everything  you  can
  5728.                                             SET.
  5729.  
  5730. "EXIT"                                      terminates UFI and returns  you
  5731.                                             to RBBS-PC.
  5732. RBBS-PC Version CPC17-1A                                    October 2, 1988
  5733. Copyright 1988 by D. Thomas Mack                            Page 217 of 232
  5734.  
  5735. APPENDIX V -- Using RBBS-PC with SEAdog to Access FIDO-NET
  5736. ----------------------------------------------------------
  5737. SEAdog  is  a full-featured electronic mail system based  on  the  personal
  5738. computer and using standard telephone lines.   It is a sophisticated store-
  5739. and-forward  mail system which can be configured in a  virtually  unlimited
  5740. number  of  network topologies (more on this later).  Unlike  some  network
  5741. systems, the end user need never concern himself with network routing -- it
  5742. all  happens automatically.  The user just submits and retrieves  messages,
  5743. the  system takes care of the details.  The hardware needed to run  RBBS-PC
  5744. is sufficient to run SEADOG.
  5745.  
  5746. SEAdog  uses  the  FidoNet  Electronic Mail Protocol,  as  defined  in  the
  5747. document,   A   Basic  FidoNet  Technical  Standard,   published   by   the
  5748. International FidoNet Association (IFNA).  The FidoNet Protocol is a public
  5749. domain  electronic mail standard originally developed by Tom  Jennings  for
  5750. the  Fido  bulletin board system. For more information  about  the  FidoNet
  5751. Protocol, please write to:
  5752.  
  5753.     The International FidoNet Association
  5754.     P.O. Box 41143
  5755.     St. Louis, Missouri  63141
  5756.     United States of America
  5757.  
  5758. There  are several advantages to using the FidoNet Protocol, not the  least
  5759. of  which  is that a great many utilities and programs are  available  from
  5760. many  different  vendors  for doing various things  with  electronic  mail.
  5761. Please contact IFNA at the above address for more information.
  5762.  
  5763. The  heart of SEAdog is the network mail server, MAILER.EXE.  This  is  the
  5764. program that places and receives phone calls, handles message routing,  and
  5765. so  forth.   It is left running when you would normally turn  your  machine
  5766. off.
  5767.  
  5768. You  can  set  RBBS-PC to drop to DOS at a time when  telephone  costs  are
  5769. cheapest  (normally  4AM Eastern Standard time and 1AM  Pacific  time)  and
  5770. invoke  the  mailer so that it begins placing phone calls to  other  SEAdog
  5771. systems to pass them your outgoing mail and receive your incoming mail.
  5772.  
  5773. SEAdog  costs $100.00 and can be ordered from the address or  phone  number
  5774. below.
  5775.  
  5776.         Thom Henderson
  5777. SYSTEM ENCHANCEMENT ASSOCIATES
  5778.        21 Wayne Street
  5779.    Wayne, New Jersey 07470
  5780.        V:201-473-5153
  5781.  
  5782. This  doc  file is not intended to replace the SEAdog  manual,  but  rather
  5783. provide  information  that  an RBBS-PC SYSOPsysop would  find  useful  when
  5784. configuring RBBS-PC to run with SEAdog.
  5785.  
  5786. The current status of the RBBS-PC - SEAdog project is at the level in which
  5787. RBBS-PC  has the ability to be front-ended by SEAdog in where  SEAdog  will
  5788. turn  over  to it a live, active modem with a caller waiting.  RBBS-PC  has
  5789. RBBS-PC Version CPC17-1A                                    October 2, 1988
  5790. Copyright 1988 by D. Thomas Mack                            Page 218 of 232
  5791.  
  5792. been  modified to accept two additional command line parameters  which  can
  5793. alter  the defaults in RBBS-PC.DEF. Currently, that is the extent to  which
  5794. RBBS-PC  and SEAdog can be used together. The Fido message base  format  is
  5795. not yet compatible with RBBS-PC.
  5796.  
  5797. It  is assumed that you are reading this because you are familiar with  the
  5798. RBBS-PC  and  have at least a minimum knowledge of  FidoNet  and  FidoMail.
  5799. Another  assumption  is  that  you have RBBS-PC  up  and  running  on  your
  5800. computer.   The easiest way to get all two programs working together is  to
  5801. have  each running from it's own subdirectory on your hard  disk.   That'll
  5802. make  maintenance of RBBS-PC and SEAdog specific files much easier.  Follow
  5803. the  instructions in the SEAdog manual to install it, if that  hasn't  been
  5804. done yet. Once installed all SEAdog files will be in a subdirectory  called
  5805. \MAIL.  Make any required modifications to your CONFIG.SYS as suggested  in
  5806. the SEAdog manual.
  5807.  
  5808. If  your  using DOS 3.xx, and don't use the DOS SUBST command,  you  should
  5809. consider  doing  so.  SUBST is a DOS external command that  allows  you  to
  5810. SUBSTitute  a  drive letter for a complete subdirectory  name.  Using  this
  5811. command will make reprogramming RBBS-PC's configuration file easier.
  5812.  
  5813. This  appendix  assumes  that all the SEAdog Files are  in  a  subdirectory
  5814. called  C:\MAIL  and those for RBBS-PC are in a directory called   C:\RBBS.
  5815. A  further  assumption  that  is made is that a new  drive   "H:"  will  be
  5816. SUBSTitued for the  C:\RBBS subdirectory.
  5817.  
  5818. Since  SEAdog  will be in controls most of the time, the  entire  operation
  5819. should use SEAdog's  C:\MAIL  directory as the default.
  5820.  
  5821. Now  load  and run CONFIG.EXE and reprogram it's configuration  to  reflect
  5822. that all RBBS's help, menu and system files are located on the "H:"  drive.
  5823. Remember  the  SUBSTitute command?   You can use it to replace  those  long
  5824. subdirectory  names for download and upload files.  SPECIAL ATTENTION  must
  5825. be paid to CONFIG.EXE's parameter 163. This parameter MUST be set to SYSTEM
  5826. recycle.  Not doing so will cause RBBS-PC to reload itself after  a  caller
  5827. has hung up or dropped carrier and not pass control back to SEAdog.
  5828.  
  5829. The  SEAdog  manual explains various commands that must be placed  in  it's
  5830. configuration  file called  CONFIG.DOG.  Among those that are considered  a
  5831. minimum, you should include at least the following....
  5832.  
  5833. banner   Please stby,  15 secs to load  RBBS-PC
  5834. bbs      H:RBBS    *T *B
  5835. event    B  all   4:30  5:00                    ;Local collections
  5836. event    A  all   5:00  6:00                    ;National FidoMail Window
  5837. event    C  all   6:00  7:00                    ;Local distributions
  5838. event    S  all   7:00  4:00 Crash Dynamic BBS  ;CRASH mail if not in RBBS
  5839. event   X10 all   7:00  7:05                    ;Reboot Computer
  5840.  
  5841. The  banner  statement should be used so that human callers know why  there
  5842. is  a  delay  from the time they connect until the time  they  see  RBBS-PC
  5843. display  it's  welcome message.  The  bbs command tells SEAdog  what  batch
  5844. file  to run when passing control to RBBS.  *T and *B must be in the  order
  5845. presented above in for RBBS-PC to pickup and use them correctly. They  pass
  5846. RBBS-PC Version CPC17-1A                                    October 2, 1988
  5847. Copyright 1988 by D. Thomas Mack                            Page 219 of 232
  5848.  
  5849. the time remaining to the next scheduled SEAdog event and the baud rate the
  5850. caller  came  on with.  Event statements tell SEAdog how to  schedule  it's
  5851. time  during  the day. The above example conforms to the  FidoNet  national
  5852. mails  hours as of 26 July 1987 and allows crash mail and bbs operation  at
  5853. all others.
  5854.  
  5855. Since  the SEAdog  *P  parameter in the  bbs  command isn't used, you  must
  5856. insure that the comm ports used for RBBS-PC and SEAdog are the same.
  5857.  
  5858. One  of  the  more  confusing decisions will be  how  to  setup  the  modem
  5859. switches.   Without going into it too deeply, keep in mind that SEAdog will
  5860. be controlling the modem and passing an active modem on to RBBS-PC.
  5861.  
  5862. Additionally, you could have your SEAdog upload and download areas  overlap
  5863. those of RBBS-PC.
  5864.  
  5865. When  SEAdog determines that a a non SEAdog or Fido system has  called,  it
  5866. runs  a  second  copy of DOS, then optionally loads and  runs  RBBS-PC  via
  5867. direct  command or from a batch file, passing the speed that the comm  port
  5868. was  opened at, and the time remaining to the next scheduled SEAdog  mailer
  5869. event as in the following example:
  5870.  
  5871. SEAdog calls RBBS-PC via a batch file called RBBS.BAT
  5872.  
  5873.    C>RBBS-PC 1 H:RBBS-PC.DEF /%1 /%2
  5874.      |       | |              |   |> Baud Rate
  5875.      |       | |              |
  5876.      |       | |              |
  5877.      |       | |              |> Limits  the  amount of time the  user  has
  5878.      |       | |                 this  session if and only if the  time  is
  5879.      |       | |                 less  then the time per session  specified
  5880.      |       | |                 in CONFIG.EXE.
  5881.      |       | |> RBBS-PC default file filespec  (Optional)
  5882.      |       |> Node  number  that  the specified  .DEF  file  applies  to.
  5883.      |          (Optional)
  5884.      |> The name of the RBBS-PC program.
  5885.  
  5886. With  a  properly configured RBBS.BAT batch file, you can  retain  all  the
  5887. functions  of RBBS to include DOORS and dropping to DOS via SysOp  function
  5888. #7. See the sample batch files at the end of this file.
  5889.  
  5890. Experience has shown that the best way to run RBBS-PC and SEAdog is with  a
  5891. batch  file,  where SEAdog having determined that a non  mailer  system  is
  5892. waiting  to use the bbs will load and run a batch file that controls  RBBS-
  5893. PC's  operation as opposed to SEAdog calling RBBS-PC directly.   Two  batch
  5894. files are used, one to control SEAdog and one to control RBBS.
  5895.  
  5896. A minimum batch file is suggested in the SEAdog manual. In addition to what
  5897. ever you place in it, add the following statements to it.
  5898.  
  5899.   If Exist H:RCTTY.BAT Del H:RCTTY.BAT
  5900.  
  5901. This  line should be the first.  This statement simply helps ensure  proper
  5902. operation of RBBS-PC if you use SYSOP function #7  or DOORS.
  5903. RBBS-PC Version CPC17-1A                                    October 2, 1988
  5904. Copyright 1988 by D. Thomas Mack                            Page 220 of 232
  5905.  
  5906.  If Errorlevel 10 Goto REBOOT:
  5907.  
  5908. This line goes after the line that contains the call to the MAILER program.
  5909.  
  5910. REBOOT:
  5911.  IPL
  5912.  
  5913. This  line  reboots the computer every morning according  to  event  listed
  5914. above.  Due do unexplained loss of memory when running SEAdog and  RBBS-PC,
  5915. is  safe to program in a scheduled rebooting of the computer to regain  any
  5916. loss of memory. This line should be near the last and programmed around for
  5917. normal operations
  5918.  
  5919.  
  5920.  
  5921. **  Ex RBBS batch file  **
  5922.  
  5923.   Echo Off
  5924. :LOOP
  5925.   C:
  5926.   Cd \MAIL
  5927.   If Not Exist H:RCTTY.BAT Goto LOCAL
  5928.   H:WATCHDG1 OFF
  5929.   Del H:RCTTY.BAT
  5930.   H:TESTRBBS 1 H:RBBS-PC.DEF
  5931.   Goto REMOTE
  5932.  
  5933. :LOCAL
  5934.   H:TESTRBBS 1 H:RBBS-PC.DEF /%1 /%2
  5935.  
  5936. :REMOTE
  5937.   If Not Exist H:RCTTY.BAT GOTO EXIT
  5938.   H:WATCHDG1 ON
  5939.   H:RCTTY.BAT
  5940.  
  5941. :EXIT
  5942.  
  5943. As  mentioned  above, this doc file isn't intended to make  you  completely
  5944. knowledgeable on how to interface RBBS-PC and SEAdog, only get you started.
  5945. How you set up your RBBS-PC and SEAdog batch files is limited only by  your
  5946. ability  and imagination.  After gaining more experience, you'll find  that
  5947. you can automate a lot of the  RBBS-PC and SEAdog maintenance.
  5948.  
  5949. The  above  reflects  the  creative things that  Kim  Wells,  Fido  Address
  5950. 109/652,  has done with interfacing RBBS-PC with the Fido net-mail  system.
  5951. If you need further help, contact Kim Wells's RBBS-PC via his data line  at
  5952. (301) 350-1299.
  5953. RBBS-PC Version CPC17-1A                                    October 2, 1988
  5954. Copyright 1988 by D. Thomas Mack                            Page 221 of 232
  5955.  
  5956. APPENDIX W -- DOS Limitation on Running Programs Remotely
  5957. ---------------------------------------------------------
  5958. When accessing your PC via a communications port, the carrier detect signal
  5959. tells the PC that you are on-line.  DOS's major limitation is that there is
  5960. no  way  to  tell DOS to monitor carrier  detect  automatically   when  the
  5961. standard input and output is transferred to a communication port (i.e.  via
  5962. the  CTTY  command).   RBBS-PC makes sure that the carrier is  not  dropped
  5963. when a user exits to DOS either via the "DOORS" option or using the  remote
  5964. SYSOP function 7.  However, it is the  SYSOP's  responsibility  to   insure
  5965. that   whatever  programs are invoked after leaving RBBS-PC   perform   all
  5966. the  necessary  functions  to maintain the communications session and, when
  5967. exiting to return to RBBS-PC, that the carrier  is  "NOT"  dropped.
  5968.  
  5969. Most  application  programs (i.e. databases, etc.) are not designed  to  be
  5970. controlled  by  users  accessing them from  a  communications  port.   This
  5971. problem is solved when a function is invoked that:
  5972.  
  5973. 1. Checks   to   see if the standard input and output console   have   been
  5974.    assigned to an auxiliary console such as a communication port.
  5975. 2. If  condition 1 is true, checks to see if the carrier detect  signal  is
  5976.    lost   by  intercepting  each  interrupt from  the  communication   port
  5977.    the auxiliary console has been assigned to.
  5978. 3. If  BOTH conditions 1 and 2 are true, this function would cause  DOS  to
  5979.    return  to  the  standard screen and keyboard  for  its  operations  AND
  5980.    continue   processing  whatever batch file that had been executing.
  5981.  
  5982. Such a function (or device driver) would provide a "fail safe" feature that
  5983. would  allow users to exit  RBBS-PC  to  use  whatever  other software  the
  5984. SYSOP  chose to make  available  (i.e.   relational databases  for  complex
  5985. inquiries   -- bibliographic,    sports,    games,    etc.).    For   those
  5986. anticipating  using  RBBS-PC's  "doors" or exiting to DOS when  you  are  a
  5987. remote SYSOP,  you are strongly encouraged to consider using the "watchdog"
  5988. utility  program  available on many bulletin board systems under such  file
  5989. names  as  WATCHDOG.COM,   WATCHDOG.ASM,  WATCHDOG.DOC,  WATCHDOG.EXE  that
  5990. monitors the communication port for you and reboots your system if  carrier
  5991. drops.   If  you don't use a program like WATCHDOG and accidentally hang up
  5992. while  in a "door" or in DOS,  you system will remain "hung" until you  can
  5993. manually reboot it.
  5994.  
  5995. Programs that utilize the PC's built in video memory (such as the IBM BASIC
  5996. interpreter or WordStar when it writes to the 25th line) need to have  such
  5997. I/O redirected in a special way to a remote users terminal.   Additionally,
  5998. if  the I/O is redirected to the communications port, the terminal  on  the
  5999. other  end  must have a "cursor" that can be sent the  appropriate  command
  6000. sequence  to  move  it around on the remote users  terminal  as  necessary.
  6001. Without this capability, programs  made  available  through "doors" must be
  6002. line-at-a-time  programs.   This  of  course  excludes   programs  such  as
  6003. WordStar, Lotus/123 etc.
  6004.  
  6005. If  you  aren't technically inclined and want to use  RBBS-PC  "doors",   I
  6006. suggest you consider only using programs that have been explicitly  written
  6007. to  overcome the above two DOS limitations.  Applications that don't  write
  6008. directly  to the video memory of the PC can be used safely as a  "door"  as
  6009. long as a "watchdog" type program is also used.
  6010. RBBS-PC Version CPC17-1A                                    October 2, 1988
  6011. Copyright 1988 by D. Thomas Mack                            Page 222 of 232
  6012.  
  6013. APPENDIX X -- Using RBBS-PC with DoubleDOS
  6014. ------------------------------------------
  6015. Two nodes of RBBS-PC can be operated on one 640K PC/XT/AT under  DoubleDOS.
  6016. First, make sure DoubleDOS and RBBS-PC, individually, operate correctly  on
  6017. your  computer.  Then, the DDCONFIG.SYS file can be changed  to  facilitate
  6018. operation of RBBS.  SoftLogic Solutions, the DoubleDOS supplier, operates a
  6019. customer  service  BBS  at 603-644-5556 and can  often  help  with  special
  6020. problems.   (An example: DoubleDos version 4.0 must be modified with  their
  6021. special patch in order to operate on machines using EEMS memory  controlled
  6022. by AST's REMM.SYS driver.)
  6023.  
  6024. DoubleDOS  even has a special interrupt that RBBS-PC calls to  "give  back"
  6025. unused time to the foreground job when it really doesn't need the time,  so
  6026. that during periods of low communications activity, the foreground job runs
  6027. at essentially 100% of the machine's speed.  GIVEBACK is incorporated  into
  6028. releases CPC16-1A (and greater) of RBBS-PC.
  6029.  
  6030. The  DOS  (3.1  or greater) utility SHARE should  be  run  before  starting
  6031. DoubleDOS to provide for file locking.
  6032.  
  6033. RBBS-PC,  due  to  the code generated by the  BASIC  compiler,  requires  a
  6034. considerable amount of memory.  If insufficient memory is available,  RBBS-
  6035. PC may fail to load, may report a string corrupt error, may hang, or, worst
  6036. of  all,  may appear to start and operate normally only to fail  later.   A
  6037. (partial) test of whether enough memory is available is to note the DS free
  6038. space in the SYSOP initial menu when operating under DoubleDOS compared  to
  6039. naked  DOS; any reduction in this reported free space may  indicate  memory
  6040. shortage.   The best approach, unfortunately, is to start with more  memory
  6041. than  necessary, get your system going reliably, and then do a  crude  cut-
  6042. and-try  process of reducing memory until problems first appear; then  back
  6043. off up to an again-reliable memory setting.
  6044.  
  6045. Terminate-and-stay-resident  programs (e.g. ramdisks, print spoolers,  Side
  6046. Kick)  will reduce the memory available to RBBS-PC.  Buffers  specified  in
  6047. the CONFIG.SYS file also reduce available memory.  Some versions of DOS are
  6048. smaller than others; every little bit of memory helps.  Large programs  may
  6049. not  run in the second DoubleDos memory section after starting  RBBS-PC  in
  6050. the first.
  6051.  
  6052. Because of these memory considerations, SHELLing to DOORS and external file
  6053. transfer protocols will not be possible.  If these features of RBBS-PC  are
  6054. used, they will need to be invoked by EXITing to them.
  6055.  
  6056. The  BASIC compiler version used determines the amount of memory  required.
  6057. Two  nodes  of  RBBS(version  16.1A), have  been  demonstrated  to  operate
  6058. successfully under DoubleDOS when compiled with Quick Basic 1.02 and  RBBS-
  6059. PC's  memory  requirements reduced (see Appendix Y).   When  compiled  with
  6060. Quick  Basic 2.x, 3.x or 4.x, two nodes will not fit under  DoubleDOS.   To
  6061. save  memory,  expert SYSOPS who are adept at compiling/linking  their  own
  6062. custom versions of RBBS-PC, can selectively (and at their own risk)  delete
  6063. from  the  source code sections that they do not  require.   Such  personal
  6064. versions  should  not be circulated to others.  If this is done,  the  more
  6065. recent compilers may produce code compact enough for 2 nodes.
  6066. DoubleDOS  has  several  parameters that  can  improve  RBBS-PC  operation.
  6067. RBBS-PC Version CPC17-1A                                    October 2, 1988
  6068. Copyright 1988 by D. Thomas Mack                            Page 223 of 232
  6069.  
  6070. Sample:
  6071.      menu = short                    ;the long menu requires more memory
  6072.      display = text                  ;to not reserve graphics buffer
  6073.      print driver = direct           ;use direct drive, no buffer reserved
  6074.      bottom size = half              ;split memory for two RBBS nodes
  6075.      priority = equal                ;both nodes run at same speed
  6076.  
  6077. The next items may be desirable to provide protection, in case any  program
  6078. in the other memory section should try to use a COM port assigned to  RBBS-
  6079. PC.
  6080.        com1 = top                      ;obviously these two port assignments
  6081.        com2 = bottom                   ;could be reversed
  6082.  
  6083. Possible circumstances that might warrant this protection:
  6084.  
  6085. 1. SYSOP  makes a COM port assignment error in the .DEF file for the  other
  6086.    node.
  6087. 2. one  node is temporarily shut down by the SYSOP to run another  program.
  6088.    Some  programs (e.g. some versions of BASIC) initialize both  COM  ports
  6089.    (clobbering RBBS-PC) when started.
  6090.  
  6091. Warning:   this protection is known to be unusable on some machines  (e.g.,
  6092. works fine on IBM-PC 8088, does not work on AST Premium 286 or TATUNG  4000
  6093. AT).
  6094.  
  6095. It is convenient (and safer, to prevent keystroke errors) to automate  your
  6096. startup.   In your AUTOEXEC.BAT file you should initiate DOUBLEDOS  as  the
  6097. last  item.  It will then start, using the DDCONFIG.SYS file  for  detailed
  6098. RBBS-PC  instructions.   Sample  DDCONFIG.SYS  contents  (this  will   vary
  6099. according to your exact setup):
  6100.  
  6101.      top program = prompt TOP $p$g
  6102.      top program = go
  6103.      bottom program = prompt BOT $p$g
  6104.      bottom program = go
  6105.  
  6106. Note  that the change in prompt allows a single batch file,  GO.BAT,  which
  6107. has  the  single statement of GO%PROMPT%, to execute the  correct  node  of
  6108. RBBS-PC in either node.  Nothing is more embarrassing than to start a  node
  6109. that is already operating.  All that need be typed is GO<RETURN> and either
  6110. GOTOP  or  GOBOT will be executed.  (Actually the GO batch  file  execution
  6111. looks  like  "TOP C:\DDOS>GOTOP $p$g".  The $p$g  is  ignored.)   GOTOP.BAT
  6112. might then look like this:
  6113.     C:
  6114.     CD\RBBS
  6115.     RBBS1
  6116.  
  6117. RBBS1.BAT  would  then  be the first node RBBS.BAT  as  discussed  in  this
  6118. document.  Similarly, GOBOT would start RBBS2.BAT for the second node.
  6119.  
  6120. Stan Staten, RBBS-PC number (301) 670-9621
  6121. Kurt Riegel, RBBS-PC number (202) 524-1837)
  6122. RBBS-PC Version CPC17-1A                                    October 2, 1988
  6123. Copyright 1988 by D. Thomas Mack                            Page 224 of 232
  6124.  
  6125. APPENDIX Y -- Recompiling RBBS-PC to Reduce Memory Requirements
  6126. ---------------------------------------------------------------
  6127. RBBS-PC has always sought to live up to CPCUG's Bill of Rights for Software
  6128. Users  which maintains, among other things, that each software user  has  a
  6129. right  to "integrate software products into his or her  system  environment
  6130. without undue constraints."   For this reason, RBBS-PC has chosen to be  as
  6131. configurable as possible through the program CONFIG with over 200 different
  6132. parameters.   Additionally,  RBBS-PC has always been distributed  with  the
  6133. complete BASIC source code with each new release.
  6134.  
  6135. It  is  this kind of leadership (by example) and  recognition  of  software
  6136. users rights that makes RBBS-PC unique in the personal computer industry.
  6137.  
  6138. RBBS-PC is continually being enhanced with new features.  As new  functions
  6139. and   capabilities   are   added,  RBBS-PC's   memory   requirements   grow
  6140. correspondingly.  In order to continue RBBS-PC's growth and still meet  the
  6141. memory  constraints imposed on SYSOPs with only 640K of memory who wish  to
  6142. run  two  copies of RBBS-PC,  RBBS-PC source code can be  "mite-sized"  and
  6143. recompiled  to  fit within whatever memory constraints a  SYSOP  must  deal
  6144. with.
  6145.  
  6146. SYSOPs can apply .MRG files against the unmodified RBBS-PC source code  and
  6147. elect to eliminate RBBS-PC features not being used and eliminate  redundant
  6148. code  (typically  the BASIC source code that replicates  assembly  language
  6149. routines).  RBBS-PC  Version CPC17-1A has a companion  "mite-size"  set  of
  6150. files contained in the file LIT-171A.ARC dated 9/18/88.
  6151.  
  6152. In order to recompile and "mite-size" RBBS-PC, within the same  environment
  6153. in which the SYSOP has successfully recompiled the current release of RBBS-
  6154. PC Version CPC17-1A the SYSOP must also have the following files:
  6155.  
  6156. BLED.EXE     -- The  Batch  Line  EDitor by Ken  Goosens  (version  2.0  or
  6157.                 greater).
  6158. MAKELIT.BAT  -- The  BATch file that invokes BLED.EXE and applies  the  the
  6159.                 necessary  files to the unmodified source code.  This  file
  6160.                 should  be  modified by putting in the drive/path  for  the
  6161.                 original  code (the first parm to BLED).  The lines  to  be
  6162.                 modified  all begin with "*$", which is the default  for  a
  6163.                 BLED metacommand.   The lines beginning with "* " are  BLED
  6164.                 comments, which are ignored in a merge.
  6165. SETLIT.INC   -- The  file  through  which the  SYSOP  selects  the  RBBS-PC
  6166.                 features  that  are not needed.  The directions  for  doing
  6167.                 this are contained within this file. A feature is typically
  6168.                 removed  by setting a BLED metacommand variable  to  "OFF",
  6169.                 e.g. BAUD450 to "OFF" to save code by excluding the RBBS-PC
  6170.                 feature  that allows 300 baud uses to increase  their  baud
  6171.                 rate  to  450 while on-line.  To  exclude  RBBS-PC  LIBRARY
  6172.                 subsystem set LIBRARY to "OFF".
  6173. RBBSLIT.MRG  -- The fundamental BLED merge for CPC17-1A's RBBS-PC.BAS
  6174. SUBxLIT.MRG  -- The   fundamental   BLED  merge  for   CPC17-1A's   various
  6175.                 RBBSSUB's.  Each reads in (includes) the file SETLIT.INC to
  6176.                 set  the  metavariables used by BLED.  BLED then  uses  the
  6177.                 values to determines what merges to process.
  6178. *.LIT.       -- .MRG files that eliminate RBBS-PC features.
  6179. RBBS-PC Version CPC17-1A                                    October 2, 1988
  6180. Copyright 1988 by D. Thomas Mack                            Page 225 of 232
  6181.  
  6182. The procedure for "mite-size"ing RBBS-PC Version CPC17-1A is as follows:
  6183.  
  6184. 1.  Select the RBBS-PC features not required for your needs and modify  the
  6185.     file SETLIT.INC.
  6186.  
  6187. 2.  Change MAKELIT.BAT to reflect your PC's subdirectories.
  6188.  
  6189. 3.  Make sure RBBSSUB1.BAS is in the subdirectory you will run in.
  6190.  
  6191. 4.  Execute the MAKELIT.BAT file.  Do not continue if errors are found.
  6192.  
  6193. 5.  Recompile the "mite-siz"ed RBBS-PC source code.  Remember, this  "mite-
  6194.     sized" source code and the RBBS-PC.EXE file created from it my only  be
  6195.     used by you and not distributed to others.
  6196.  
  6197.      Some comments on the various Microsoft QuickBASIC compilers:
  6198.           QuickBASIC Version 1.02 produces the smallest code.
  6199.           QuickBASIC Version 2.01 produces the next smallest code.
  6200.           QuickBASIC Version 3.00 produces the largest code.
  6201.           QuickBASIC Version 4.00 produces the best code (smaller than
  6202.                 3.00) but has problems with SHELLing.
  6203.  
  6204.      Never LINK with the /E option.
  6205.  
  6206. 6.  Re-run CONFIG and disable the RBBS-PC features that were deleted in the
  6207.     "mite-sized"  version that was created in steps 1 through 5 (i.e.  take
  6208.     out the "A" command if questionnaires were disabled).
  6209.  
  6210. Please  realize  that there is no way that the "mite-sized"  variations  of
  6211. RBBS-PC  can be supported.  The many different PC configurations  plus  the
  6212. multitude   of  combinations  of  RBBS-PC  features  are  what  make   this
  6213. impossible.  However, we will do our best.
  6214.  
  6215. Please report any problems with BLED or the *.LIT merges to Ken Goosens via
  6216. his RBBS-PC data number -- (703) 978-6360.
  6217. RBBS-PC Version CPC17-1A                                    October 2, 1988
  6218. Copyright 1988 by D. Thomas Mack                            Page 226 of 232
  6219.  
  6220. APPENDIX Z -- RBBS-PC and the MICROCOM AX\9624c Switch Settings
  6221. ---------------------------------------------------------------
  6222. First set the Microcom AX\9624c switch settings as follows:
  6223.  
  6224.      CONFIGURATION SWITCH SETTINGS FOR THE MICROCOM AX\9624c MODEM
  6225.      =============================================================
  6226.  
  6227.                  1   2   3   4   5   6   7   8   9   10
  6228.                  --------------------------------------
  6229. Front Switch -   U   D   D   D   D   U   U   D   U   U
  6230.  
  6231. Rear Switch  -   U   U   D   U   D   D   D   D   -   -
  6232.  
  6233. Change  CONFIG  parameter 228 to open the modem initially  for  9600  baud.
  6234. Then  go  to  CONFIG parameter 225 and change some  of  the  default  Hayes
  6235. commands.
  6236.  
  6237. Within  parameter  225,  you  will  want  to  change  the  second  command,
  6238. "Initialize  the modem."  If you want RBBS-PC to answer on one ring set  it
  6239. to:
  6240.  
  6241.              ATM0Q1S2=255S10=45E0S0=254&D2
  6242.  
  6243. To answer on zero rings, set it to:
  6244.  
  6245.              ATM0Q1S2=255S10=15E0S0=0Q0X1&D3
  6246.  
  6247. Please  note  that these change the default Hayes  commands  supplied  with
  6248. RBBS-PC  for S10.  Also note that an &D command was added to the  end.   If
  6249. you  are  set  up to answer on ring zero and  your  modem  sometimes  stops
  6250. answering  for no reason that you can isolate, alter the S10 value to  "45"
  6251. and  &D2.  You may also want to activate CONFIG parameter 236 to "wake  up"
  6252. the modem.
  6253.  
  6254. These  configurations will allow RBBS to establish a MNP reliable  or  non-
  6255. reliable connection from 300 to 9600 BAUD using the AX\9624c's MNP class  6
  6256. Universal Link Negotiation capability.
  6257. RBBS-PC Version CPC17-1A                                    October 2, 1988
  6258. Copyright 1988 by D. Thomas Mack                            Page 227 of 232
  6259.  
  6260. APPENDIX AA -- RBBS-PC and the Leading Edge Series L 2400B Modem
  6261. ----------------------------------------------------------------
  6262. Gregg Snyder, SYSOP of "The Elusive Diamond" - DGS (Alpha) System, and  Jim
  6263. Thompson of "The Break" -DGS (Delta) System (Data:  703-680-9269) are to be
  6264. created  with documenting how to get the Leading Edge Series L 2400B  modem
  6265. to  run with RBBS-PC ("all modems are Hayes-compatable, but some  are  less
  6266. Hayes-compatable than others").
  6267.  
  6268. First  you  must set CONFIG parameter 228 to open the modem at  1200  baud.
  6269. Next go to CONFIG parameter 225 and set the modem commands as follows:
  6270.  
  6271. 1. Reset the modem                : ATB1H0L1M0C1
  6272.  
  6273. 2. Initialize the modem           : ATH0B1L1M0Q1E0S0=254
  6274.    Note: End item 2 with:
  6275.      S0=1Q0X1 if answer on 0 rings
  6276.      S0=254 if answer on >0 rings (no ring-back)
  6277.      S0=255 if answer on >0 rings (with ring-back)
  6278.  
  6279. 3. Count the number of rings      : ATS1?
  6280.  
  6281. 4. Answer the phone               : ATQ0X1V1A
  6282.  
  6283. 5. Take the phone off the hook    : ATH1L1M0
  6284.  
  6285. 6. Clear the modem's firmware     : AT&F
  6286.  
  6287. 7. Initialize modem's firmware    : AT&C1&D3B1E0V1M0S0=0&T5
  6288.    Note: End item 7 with:
  6289.      Q1 if item 2 ends with S0=255
  6290.  
  6291. 8. Write to modem's firmware      : &W
  6292.  
  6293. These  settings  have  been tested for more than a  year  by  Jim  Thompson
  6294. beginning with RBBS-PC CPC15-1C.
  6295. RBBS-PC Version CPC17-1A                                    October 2, 1988
  6296. Copyright 1988 by D. Thomas Mack                            Page 228 of 232
  6297.  
  6298. CONFIG Parameter Cross-Reference Index
  6299. --------------------------------------
  6300. The  following  is  a  complete  cross-reference  listing  of  all   CONFIG
  6301. parameters.   As an example, the fourth entry in the cross-reference  index
  6302. shows that Parameter number 101 is referenced on pages 85, 99, 131, and 180
  6303. of the RBBS-PC Version CPC17-1A's documentation.
  6304.  
  6305. Parameter 1, 74
  6306. Parameter 10, 75
  6307. Parameter 101, 85, 99, 131, 180
  6308. Parameter 102, 85
  6309. Parameter 103, 85, 127, 131, 177
  6310. Parameter 104, 85, 127, 131, 177
  6311. Parameter 105, 85, 142
  6312. Parameter 106, 86
  6313. Parameter 107, 86
  6314. Parameter 108, 86
  6315. Parameter 11, 75, 88
  6316. Parameter 12, 75, 83
  6317. Parameter 121, 86, 141
  6318. Parameter 122, 87
  6319. Parameter 123, 87, 146, 147
  6320. Parameter 124, 87, 90
  6321. Parameter 125, 87, 93, 119
  6322. Parameter 126, 87
  6323. Parameter 127, 87, 116
  6324. Parameter 128, 87
  6325. Parameter 129, 87
  6326. Parameter 13, 76
  6327. Parameter 130, 87
  6328. Parameter 131, 87
  6329. Parameter 133, 87
  6330. Parameter 134, 87
  6331. Parameter 135, 87
  6332. Parameter 136, 88
  6333. Parameter 137, 88
  6334. Parameter 138, 88
  6335. Parameter 139, 88
  6336. Parameter 14, 76
  6337. Parameter 140, 88
  6338. Parameter 141, 88
  6339. Parameter 142, 88, 124, 126
  6340. Parameter 143, 89, 124, 126
  6341. Parameter 144, 89, 126
  6342. Parameter 145, 89
  6343. Parameter 146, 87, 89
  6344. Parameter 147, 89, 126
  6345. Parameter 148, 89, 97, 115
  6346. Parameter 149, 89, 98
  6347. Parameter 15, 76
  6348. Parameter 150, 90
  6349. Parameter 151, 90, 93
  6350. Parameter 152, 91
  6351. Parameter 153, 91, 115, 116
  6352. RBBS-PC Version CPC17-1A                                    October 2, 1988
  6353. Copyright 1988 by D. Thomas Mack                            Page 229 of 232
  6354.  
  6355. Parameter 154, 91
  6356. Parameter 155, 91
  6357. Parameter 16, 76, 94
  6358. Parameter 161, 92, 93, 177, 186
  6359. Parameter 162, 92, 176, 181, 186, 189
  6360. Parameter 163, 92, 218
  6361. Parameter 164, 92
  6362. Parameter 165, 93
  6363. Parameter 166, 93
  6364. Parameter 167, 90, 93, 148
  6365. Parameter 17, 63, 64, 65, 76
  6366. Parameter 18, 68, 76
  6367. Parameter 181, 94
  6368. Parameter 182, 94
  6369. Parameter 183, 94
  6370. Parameter 184, 94
  6371. Parameter 185, 94
  6372. Parameter 186, 83, 94
  6373. Parameter 187, 94, 119, 120, 125, 126
  6374. Parameter 188, 95, 126
  6375. Parameter 189, 95
  6376. Parameter 19, 76, 150, 151
  6377. Parameter 190, 95
  6378. Parameter 191, 95
  6379. Parameter 192, 95
  6380. Parameter 2, 74
  6381. Parameter 201, 95, 96, 114
  6382. Parameter 202, 95, 114
  6383. Parameter 203, 95, 114
  6384. Parameter 204, 49, 95, 96, 114
  6385. Parameter 205, 95, 114
  6386. Parameter 206, 96, 114
  6387. Parameter 207, 96, 114
  6388. Parameter 208, 96, 205
  6389. Parameter 209, 96, 114, 117, 118
  6390. Parameter 21, 76, 151
  6391. Parameter 210, 96
  6392. Parameter 211, 96, 114, 117, 118
  6393. Parameter 212, 97
  6394. Parameter 213, 97
  6395. Parameter 214, 76, 78, 91, 97, 117
  6396. Parameter 215, 98, 113
  6397. Parameter 216, 98
  6398. Parameter 217, 98, 119
  6399. Parameter 218, 76, 79, 98
  6400. Parameter 219, 98, 118
  6401. Parameter 22, 76
  6402. Parameter 220, 98, 106, 114, 118
  6403. Parameter 221, 18, 98, 177, 186, 189, 194
  6404. Parameter 222, 99, 203, 204
  6405. Parameter 223, 99, 203, 204
  6406. Parameter 224, 99, 100, 189, 193, 194, 197, 198, 205
  6407. Parameter 225, 100, 108, 109, 110, 111, 112, 113, 197, 198, 201, 203, 204,
  6408.   205, 207, 226, 227
  6409. RBBS-PC Version CPC17-1A                                    October 2, 1988
  6410. Copyright 1988 by D. Thomas Mack                            Page 230 of 232
  6411.  
  6412. Parameter 226, 100
  6413. Parameter 227, 101, 197, 198, 203, 204
  6414. Parameter 228, 101, 194, 197, 198, 203, 204, 226, 227
  6415. Parameter 229, 101
  6416. Parameter 23, 76
  6417. Parameter 230, 101
  6418. Parameter 231, 101, 112, 113, 204
  6419. Parameter 232, 101
  6420. Parameter 233, 101, 166
  6421. Parameter 234, 102
  6422. Parameter 235, 102
  6423. Parameter 236, 102
  6424. Parameter 237, 102, 197, 198, 203, 204
  6425. Parameter 24, 76
  6426. Parameter 241, 102
  6427. Parameter 242, 102
  6428. Parameter 243, 103
  6429. Parameter 244, 103, 197, 198, 203, 204
  6430. Parameter 245, 103, 197, 198, 203, 204
  6431. Parameter 246, 103
  6432. Parameter 25, 77
  6433. Parameter 26, 77
  6434. Parameter 261, 103, 167
  6435. Parameter 262, 104, 167
  6436. Parameter 263, 104
  6437. Parameter 264, 105
  6438. Parameter 265, 105
  6439. Parameter 266, 105
  6440. Parameter 27, 77
  6441. Parameter 28, 77, 80
  6442. Parameter 281, 105
  6443. Parameter 282, 105
  6444. Parameter 283, 105
  6445. Parameter 284, 105
  6446. Parameter 285, 105
  6447. Parameter 286, 105
  6448. Parameter 287, 105
  6449. Parameter 288, 105
  6450. Parameter 289, 105
  6451. Parameter 29, 50, 77, 186, 189, 194
  6452. Parameter 290, 105, 147
  6453. Parameter 291, 92, 105, 106
  6454. Parameter 3, 74
  6455. Parameter 30, 77
  6456. Parameter 301, 106, 122
  6457. Parameter 302, 106, 120
  6458. Parameter 303, 106, 120, 122
  6459. Parameter 304, 106, 122
  6460. Parameter 305, 106
  6461. Parameter 306, 106
  6462. Parameter 307, 106
  6463. Parameter 308, 106
  6464. Parameter 309, 106
  6465. Parameter 31, 77
  6466. RBBS-PC Version CPC17-1A                                    October 2, 1988
  6467. Copyright 1988 by D. Thomas Mack                            Page 231 of 232
  6468.  
  6469. Parameter 310, 106, 107
  6470. Parameter 311, 107
  6471. Parameter 312, 107, 122
  6472. Parameter 313, 107, 122
  6473. Parameter 32, 77
  6474. Parameter 321, 67, 107
  6475. Parameter 322, 67, 107
  6476. Parameter 323, 67, 107
  6477. Parameter 324, 67, 107
  6478. Parameter 325, 67, 107
  6479. Parameter 326, 67, 107
  6480. Parameter 327, 107
  6481. Parameter 33, 77
  6482. Parameter 34, 77
  6483. Parameter 35, 77
  6484. Parameter 36, 77
  6485. Parameter 37, 54, 78
  6486. Parameter 38, 54, 78
  6487. Parameter 39, 78
  6488. Parameter 4, 74
  6489. Parameter 40, 78, 87, 115
  6490. Parameter 41, 41, 70, 78
  6491. Parameter 42, 70, 78
  6492. Parameter 43, 41, 70, 79, 125, 126
  6493. Parameter 44, 41, 70, 79, 125, 126
  6494. Parameter 45, 70, 78, 79, 80
  6495. Parameter 46, 70, 78, 79, 80
  6496. Parameter 47, 79
  6497. Parameter 48, 79
  6498. Parameter 49, 79
  6499. Parameter 5, 74
  6500. Parameter 50, 79
  6501. Parameter 51, 79
  6502. Parameter 52, 79
  6503. Parameter 53, 79
  6504. Parameter 54, 79, 103
  6505. Parameter 55, 80
  6506. Parameter 56, 80
  6507. Parameter 57, 80
  6508. Parameter 58, 80
  6509. Parameter 6, 75
  6510. Parameter 61, 80
  6511. Parameter 62, 80
  6512. Parameter 63, 80
  6513. Parameter 64, 81
  6514. Parameter 65, 81
  6515. Parameter 66, 81
  6516. Parameter 67, 81, 97
  6517. Parameter 68, 81
  6518. Parameter 69, 81
  6519. Parameter 7, 75, 143
  6520. Parameter 70, 81
  6521. Parameter 71, 81, 82
  6522. Parameter 72, 81, 82
  6523. RBBS-PC Version CPC17-1A                                    October 2, 1988
  6524. Copyright 1988 by D. Thomas Mack                            Page 232 of 232
  6525.  
  6526. Parameter 73, 81, 82
  6527. Parameter 74, 81, 82
  6528. Parameter 75, 81, 82
  6529. Parameter 76, 82
  6530. Parameter 77, 82
  6531. Parameter 78, 82
  6532. Parameter 79, 82
  6533. Parameter 8, 75, 136
  6534. Parameter 80, 82
  6535. Parameter 81, 83
  6536. Parameter 82, 83, 94
  6537. Parameter 83, 83
  6538. Parameter 84, 84, 151
  6539. Parameter 85, 84, 151
  6540. Parameter 86, 84
  6541. Parameter 87, 84
  6542. Parameter 88, 84
  6543. Parameter 89, 84
  6544. Parameter 9, 75
  6545. Parameter 90, 84
  6546. Parameter 91, 84
  6547. Parameter 92, 85
  6548. Parameter 93, 85, 150
  6549. Paramter 301, 122
  6550.  
  6551. ================= END OF RBBS-PC CPC17-1A DOCUMENTATION ==================
  6552.  
  6553.